Javaプログラミング入門
Javaは企業システム、Android、サーバーで広く使われています。特徴は、一つのプログラムが多くのOSで動くことです。ソースコードはバイトコードにコンパイルされ、JVM(Java仮想マシン)上で実行されます。この記事では、最初のプログラム、変数、条件分岐、ループ、クラスを順に作り、自分でコンパイルして実行するまでを説明します。
この記事のすべての例は Java 17 でコンパイルして実行し、表示した出力は実際のものです。
必要なもの
- JDK 17 以上(`java -version` と `javac -version` で確認)
- VS Code や Notepad++ などのテキストエディタ
仕組み
手順は三つです。`.java` ファイルを書き、`javac` でコンパイルして `.class` を作り、`java` で実行します。
最初のプログラム
`Hello.java` を作ります。クラス名はファイル名と一致させます。次のコードを入力してください。
public class Hello {
public static void main(String[] args) {
System.out.println("สวัสดี Java");
}
}
コンパイルと実行:
javac -encoding UTF-8 Hello.java
java -Dfile.encoding=UTF-8 Hello
出力:
สวัสดี Java
`main` はプログラムの開始点です。`System.out.println` は文字を表示します。`-encoding UTF-8` は、ファイル内のタイ語を正しく読み込むための指定です。
変数と型
Javaは静的型付けの言語で、変数ごとに型を宣言します。
| 型 | 格納するもの | 例 |
|---|---|---|
| int | 整数 | `int age = 20;` |
| double | 小数 | `double price = 19.5;` |
| boolean | 真偽値 | `boolean passed = true;` |
| String | 文字列 | `String name = "สมชาย";` |
条件分岐とループ
この例では、点数から成績を判定する `Student` クラスと、学生の一覧を回す `for` ループを使います。
import java.util.ArrayList;
import java.util.List;
public class Hello {
static class Student {
String name;
int score;
Student(String name, int score) {
this.name = name;
this.score = score;
}
String grade() {
if (score >= 80) return "A";
else if (score >= 70) return "B";
else if (score >= 50) return "C";
return "F";
}
}
public static void main(String[] args) {
System.out.println("สวัสดี Java");
List<Student> students = new ArrayList<>();
students.add(new Student("สมชาย", 85));
students.add(new Student("สมหญิง", 72));
students.add(new Student("สมศักดิ์", 45));
int total = 0;
for (Student s : students) {
System.out.println(s.name + " ได้เกรด " + s.grade());
total += s.score;
}
System.out.println("คะแนนเฉลี่ย: " + (total / students.size()));
}
}
実際の出力:
สวัสดี Java
สมชาย ได้เกรด A
สมหญิง ได้เกรด B
สมศักดิ์ ได้เกรด F
คะแนนเฉลี่ย: 67
注目してほしい点:
- `class Student` は `Hello` の中に static なネストクラスとして置かれ、関連するコードをまとめています。
- `this.name = name` で、引数とフィールドの同名の変数を区別しています。
- `total / students.size()` は整数の割り算なので、結果は 67.33 ではなく 67 になります。小数が必要なら `double` を使います。
よくある初心者のミス
- **ファイル名とクラス名が一致しない:** `public class Hello` ならファイル名は `Hello.java` にします。
- **セミコロンの忘れ:** 文の終わりには `;` が必要です。エラーメッセージは該当行を示します。
- **タイ語が文字化けする:** `-encoding UTF-8` でコンパイルし、`-Dfile.encoding=UTF-8` で実行します。
- **`javac` が認識されない:** PATH が JDK の `bin` フォルダを指しているか確認します。
次のステップ
小さな電卓を作る、`ArrayList` でデータを保存する、コードを複数のファイルと複数のクラスに分ける、といった練習をしてから、Spring Boot で Web 開発に進みましょう。
まとめ
Javaはソースをコンパイルし、JVM 上で実行します。開始点は `main` メソッドで、変数には明確な型があり、クラスでプログラムを整理します。