Java
 Computer >> コンピューター >  >> プログラミング >> Java

1つのJavaプログラムで複数のクラスを宣言できますか?


単一のJavaプログラムには2つ以上のクラスが含まれていますが、Javaでは2つの方法で可能です。

単一のJavaプログラムに複数のクラスを実装する2つの方法
  • ネストされたクラス
  • ネストされていない複数のクラス

コンパイラがネストされていない複数のクラスでどのように動作するか

以下の例では、Javaプログラムに2つのクラスが含まれています。1つのクラス名はComputerで、もう1つはLaptopです。どちらのクラスにも、独自のコンストラクターとメソッドがあります。 mainメソッドでは、2つのクラスのオブジェクトを作成し、それらのメソッドを呼び出すことができます。

public class Computer {
   Computer() {
      System.out.println("Constructor of Computer class.");
   }
   void computer_method() {
      System.out.println("Power gone! Shut down your PC soon...");
   }
   public static void main(String[] args) {
      Computer c = new Computer();
      Laptop l = new Laptop();
      c.computer_method();
      l.laptop_method();
   }
}
class Laptop {
   Laptop() {
      System.out.println("Constructor of Laptop class.");
   }
   void laptop_method() {
      System.out.println("99% Battery available.");
   }
}

上記のプログラムをコンパイルすると、2つの.classファイルが作成されます。 Computer.classとLaptop.classであるが作成されます。これには、コードを再度コンパイルすることなく、他のプロジェクトのどこかで.classファイルを再利用できるという利点があります。つまり、作成される.classファイルの数は、コード内のクラスの数と同じになります。必要な数のクラスを作成できますが、コードを読みにくくするため、1つのファイルに多くのクラスを書き込むことはお勧めしません。クラスごとに1つのファイルを作成できます。

出力

Constructor of Computer class.
Constructor of Laptop class.
Power gone! Shut down your PC soon...
99% Battery available.

コンパイラがネストされたクラスでどのように動作するか

複数の内部クラスを持つメインクラスがコンパイルされると、コンパイラは内部クラスごとに個別の.classファイルを生成します。

// Main class
public class Main {
   class Test1 { // Inner class Test1
   }
   class Test2 { // Inner class Test2
   }
   public static void main(String [] args) {
      new Object() { // Anonymous inner class 1
      };
      new Object() { // Anonymous inner class 2
      };
      System.out.println("Welcome to Tutorials Point");
   }
}

上記のプログラムには、4つの内部クラスを持つMainクラスがあります Test1、Test2、Anonymous内部クラス1 および匿名の内部クラス2 。このクラスをコンパイルすると、次のクラスファイルが生成されます。

Main.class

Main $ Test1.class

Main $ Test2.class

Main $ 1.class

Main $ 2.class

出力

Welcome to Tutorials Point

  1. 列挙型はJavaの任意のクラスを拡張できますか?

    Javaの列挙(enum)は、定数値のセットを格納するデータ型です。列挙型を使用して、1週間の日数、1年の月数などの固定値を格納できます。 キーワードenumの後に列挙型の名前を-として使用して、列挙型を定義できます。 enum Days {    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 配列と同様に、列挙型の要素/定数は、上記の例では0から始まる番号を使用して識別されます。日は、次の図に示すように番号を使用して識別されます- 列挙型はクラスに似ており、変数、メソッド、コン

  2. JavaでJTextFieldにパディングを追加するにはどうすればよいですか?

    JTextField JTextComponentのサブクラスです クラスであり、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 。 JTextFieldクラスは、 ActionListenerを生成します 内部に入力を入力しようとしたときのインターフェイス。 JTextFieldクラスの重要なメソッドは、 setText()、getText()、setBorder()、setEnabled()、です。 など setMargin(Insets s)を使用して、JTextFieldにパディングを追加できます JTextComponent ク