Java の 1つのファイルに複数のクラス
    
    
            Siddharth Swami
    2023年10月12日
    
    Java
    Java Class
    
 
この記事では、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 ファイルを再利用できます。出力では、コードが正常に実行されたことがわかります。
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe