はじめに
このチュートリアルでは、Javaを使って簡単な計算機アプリケーションを作成する方法を学びます。プログラミング初心者の方でも理解しやすいように、ステップバイステップで説明していきます。
必要なもの
- JDK (Java Development Kit) - バージョン11以上推奨
- 統合開発環境(IDE)- Eclipse, IntelliJ IDEA, または Visual Studio Codeなど
- 基本的なコンピューターの操作スキル
ステップ1: 開発環境のセットアップ
JDKのインストール
- Oracle公式サイトからJDKをダウンロードします
- ダウンロードしたインストーラーを実行し、指示に従ってインストールします
- 環境変数の設定:
- Windowsの場合:システムのプロパティ > 環境変数 > 新規でJAVA_HOMEを追加
- MacやLinuxの場合:~/.bash_profileか~/.zshrcに
export JAVA_HOME=...
を追加
IDEのインストール
初心者にはVisual Studio Code(VS Code)をお勧めします:
- VS Code公式サイトからダウンロード
- インストール後、Extensionsタブから「Extension Pack for Java」をインストール
ステップ2: 新しいJavaプロジェクトの作成
- VS Codeを起動します
- File > New Folder からプロジェクト用のフォルダを作成(例:
SimpleCalculator
) - そのフォルダを開いたら、Javaプロジェクトを作成します:
- Ctrl+Shift+P(または Cmd+Shift+P)でコマンドパレットを開く
- 「Java: Create Java Project」と入力して選択
- 「No build tools」を選択
- プロジェクト名を入力(例:
SimpleCalculator
)
ステップ3: 最初のJavaクラスを作成
- srcフォルダを右クリックし、「New File」を選択
Calculator.java
という名前のファイルを作成します- 以下のコードを入力します:
public class Calculator {
public static void main(String[] args) {
System.out.println("簡単な計算機へようこそ!");
}
}
- ファイルを保存します(Ctrl+S または Cmd+S)
- 実行ボタン(▶)をクリックするか、右クリックして「Run Java」を選択
コンソールに「簡単な計算機へようこそ!」というメッセージが表示されれば成功です!
ステップ4: 計算機の機能を追加
Calculator.java
ファイルを以下のように編集して、基本的な計算機能を追加します:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("簡単な計算機へようこそ!");
// ユーザーから最初の数値を取得
System.out.print("最初の数値を入力してください: ");
double num1 = scanner.nextDouble();
// ユーザーから演算子を取得
System.out.print("演算子を入力してください (+, -, *, /): ");
char operator = scanner.next().charAt(0);
// ユーザーから2番目の数値を取得
System.out.print("2番目の数値を入力してください: ");
double num2 = scanner.nextDouble();
// 計算を実行
double result = 0.0;
switch(operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if(num2 != 0) {
result = num1 / num2;
} else {
System.out.println("エラー: 0で割ることはできません");
scanner.close();
return;
}
break;
default:
System.out.println("無効な演算子です");
scanner.close();
return;
}
// 結果を表示
System.out.println(num1 + " " + operator + " " + num2 + " = " + result);
scanner.close();
}
}
このコードでは以下の要素を使用しています:
Scanner
クラス:ユーザー入力を取得するためのクラス- 変数:数値や演算子を保存するためのメモリ領域
- 条件分岐(switch文):演算子に応じて異なる計算を実行
ステップ5: アプリケーションの実行とテスト
- ファイルを保存します
- 実行ボタンをクリックしてプログラムを実行
- コンソールに表示される指示に従って、数値と演算子を入力
- 結果が正しく表示されることを確認
ステップ6: GUIアプリケーションへの拡張(オプション)
コンソールアプリケーションをマスターしたら、グラフィカルインターフェース(GUI)を持つアプリケーションに拡張できます。新しいファイル CalculatorGUI.java
を作成し、以下のコードを追加します:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorGUI extends JFrame implements ActionListener {
private JTextField displayField;
private double num1, num2, result;
private char operator;
public CalculatorGUI() {
// ウィンドウの設定
setTitle("簡単電卓");
setSize(300, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 表示フィールド
displayField = new JTextField();
displayField.setFont(new Font("Arial", Font.PLAIN, 24));
displayField.setHorizontalAlignment(JTextField.RIGHT);
displayField.setEditable(false);
add(displayField, BorderLayout.NORTH);
// ボタンパネル
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(5, 4, 5, 5));
// ボタンの配列
String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+",
"C"
};
// ボタンを追加
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.setFont(new Font("Arial", Font.PLAIN, 18));
button.addActionListener(this);
buttonPanel.add(button);
}
add(buttonPanel, BorderLayout.CENTER);
// ウィンドウを表示
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
// 数字かドットの場合
if ((command.charAt(0) >= '0' && command.charAt(0) <= '9') || command.equals(".")) {
displayField.setText(displayField.getText() + command);
}
// クリアボタンの場合
else if (command.equals("C")) {
displayField.setText("");
num1 = num2 = result = 0;
operator = '\0';
}
// 演算子の場合
else if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/")) {
num1 = Double.parseDouble(displayField.getText());
operator = command.charAt(0);
displayField.setText("");
}
// イコールの場合
else if (command.equals("=")) {
num2 = Double.parseDouble(displayField.getText());
switch(operator) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/':
if(num2 != 0) {
result = num1 / num2;
} else {
displayField.setText("エラー");
return;
}
break;
}
displayField.setText(String.valueOf(result));
}
}
public static void main(String[] args) {
// イベントディスパッチスレッドでGUIを作成
SwingUtilities.invokeLater(() -> {
new CalculatorGUI();
});
}
}
このコードでは、Swingライブラリを使ってGUIアプリケーションを作成しています。
まとめと次のステップ
おめでとうございます!基本的なJavaアプリケーションの作成方法を学びました。このチュートリアルで学んだ概念:
- Java開発環境のセットアップ
- 基本的なJavaプログラムの構造
- 変数と演算子
- ユーザー入力の処理
- 条件分岐と制御構造
- GUIプログラミングの基礎(オプション)
次のステップとして以下のことに挑戦してみましょう:
- 電卓アプリに新しい機能を追加する(平方根、パーセント計算など)
- エラー処理を改善する
- ファイルやデータベースとの連携を学ぶ
- オブジェクト指向プログラミングの概念をさらに深く学ぶ
プログラミングは練習あるのみです。小さなプロジェクトから始めて、徐々に複雑なアプリケーションに挑戦していきましょう!