Java の 1つのファイルに複数のクラス
Siddharth Swami
2023年10月12日
この記事では、Java の単一ファイル内の複数のクラスについて説明します。
1つのファイルで複数のクラスを宣言する方法はたくさんあります。これを実装する 2つの標準的な方法について説明します。
ネストされたクラスを使用して、Java の単一ファイルに複数のクラスを含める
このメソッドでは、クラスはクラス内で定義されます。このメソッドを使用すると、1 か所でのみ使用されるクラスを論理的にグループ化できます。
これらは 2つのカテゴリに分けられます。1つは静的と宣言された静的なネストされたクラスであり、もう 1つは非静的タイプの内部クラスです。
以下のコードは、この方法を示しています。
class Outer_Class {
// static member
static int x = 20;
// instance(non-static) member
int y = 20;
private static int outer_private = 40;
// static nested class
static class StaticNestedClass {
void display() {
System.out.println("outer_x = " + x);
System.out.println("outer_private = " + outer_private);
}
}
}
public class NestedDemo {
public static void main(String[] args) {
// accessing a static nested class
Outer_Class.StaticNestedClass nestedObject = new Outer_Class.StaticNestedClass();
nestedObject.display();
}
}
出力:
outer_x = 20
outer_private = 40
Java の単一ファイルで複数のネストされていないクラスを使用する
Java では、ネストされていない複数のクラスを 1つのファイルに含めることもできます。
次の例でこれをよりよく理解できます。
public class Phone {
Phone() {
System.out.println("Constructor of phone class.");
}
void phone_method() {
System.out.println("Phone battery is low");
}
public static void main(String[] args) {
Phone p = new Phone();
Laptop l = new Laptop();
p.phone_method();
l.laptop_method();
}
}
class Laptop {
Laptop() {
System.out.println("Constructor of Laptop class.");
}
void laptop_method() {
System.out.println("Laptop battery is low");
}
}
出力:
Constructor of phone class.
Constructor of Laptop class.
Phone battery is low
Laptop battery is low
上記の例では、プログラムは 2つのクラスで構成されています。1つ目は Phone
クラスで、2つ目は Laptop
クラスです。
どちらのクラスにも、関数を実行するためのコンストラクターとメソッドがあります。プログラムを実行すると、両方のクラスに対して 2つの .class
ファイルが作成されます。コードを再コンパイルせずに、.class
ファイルを再利用できます。出力では、コードが正常に実行されたことがわかります。