はじめに
Java を学び始めた初学者がよくつまずくポイントのひとつが、
「クラスって1ファイルに1つじゃないの?」
という誤解です。
実は Java では、public を付けなければ複数クラスを1ファイルにまとめて書けます。
この記事では、初学者でも理解しやすいように、Dog / Cat / Main の3クラスを1ファイルにまとめる方法 を解説します。
結論:public を付けるのは1ファイルにつき1クラスだけ
Java のルール:
- public class はファイル名と一致しなければならない
→だから Main.java なら public class Main だけが public - 他のクラスは public を付けない(デフォルトアクセス)
これだけ覚えればOKです。
完成コード(1ファイルで完結)
下は Main.java にすべて書いた例です。
java Main.java
// -----------------------------
// Dogクラス(publicを付けない)
// -----------------------------
class Dog {
String name;
public Dog(String name) {
this.name = name;
}
public void bark() {
System.out.println(name + "が吠えました");
}
}
// -----------------------------
// Catクラス(publicを付けない)
// -----------------------------
class Cat {
String name;
public Cat(String name) {
this.name = name;
}
public void meow() {
System.out.println(name + "が鳴きました");
}
}
// -----------------------------
// メインクラス(publicは1つだけ)
// -----------------------------
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("ポチ");
Cat cat = new Cat("タマ");
dog.bark();
cat.meow();
}
}
なぜ public を外すのか?
✔ public を付けると「ファイル名と一致しなければならない」
- public class Main → Main.java に書く必要がある
- public class Dog を同じファイルに書くとエラーになる
✔ public を外すと「同じファイル内で自由に使える」
- Dog や Cat は このファイル内だけで使う“部品” として扱える
まとめ
| 内容 | 説明 |
|---|---|
| public class は1つだけ | ファイル名と一致する必要がある |
| 他のクラスは public を付けない | 同じファイル内で使える |
| 初学者向けに1ファイル構成は有効 | 見通しが良く、理解しやすい |