Java の 1つのファイルに複数のクラス

Siddharth Swami 2023年10月12日
  1. ネストされたクラスを使用して、Java の単一ファイルに複数のクラスを含める
  2. Java の単一ファイルで複数のネストされていないクラスを使用する
Java の 1つのファイルに複数のクラス

この記事では、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 ファイルを再利用できます。出力では、コードが正常に実行されたことがわかります。

関連記事 - Java Class