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

オブジェクトがJavaで作成されるときに、最終変数を初期化できますか?


変数finalを宣言すると、それを初期化した後、その値をそれ以上変更することはできません。さらに、インスタンス変数と同様に、最終変数はデフォルト値で初期化されません。

したがって、宣言したら最終変数を初期化する必要があります 。そうでない場合、コンパイル時エラーが生成されます。

public class FinalExample {
   final int j;
   public static void main(String args[]){
      FinalExample obj = new FinalExample();
      System.out.println(obj.j);
   }
}

コンパイル時エラー

FinalExample.java:5: error: non-static variable j cannot be referenced from a static context
System.out.println(j);
^
1 error

最終変数の初期化

最終変数は4つの方法で初期化できます-

宣言している間。

public class FinalExample {
   final int j = 100;
   public static void main(String args[]){
      FinalExample obj = new FinalExample();
      System.out.println(obj.j);
   }
}

出力

100

最後のメソッドを使用します。

import java.util.Scanner;
public class FinalExample {
   final int num = getNum();
   public static final int getNum() {
      System.out.println("Enter the num value");
      return new Scanner(System.in).nextInt();
   }
   public static void main(String args[]){
      FinalExample obj = new FinalExample();
      System.out.println(obj.num);
   }
}

出力

Enter the num value
20
20

コンストラクターの使用

public class FinalExample {
   final int num;
   public FinalExample(int num) {
      this.num = num;
   }
   public static void main(String args[]){
      FinalExample obj = new FinalExample(20);
      System.out.println(obj.num);
   }
}

出力

20

インスタンス初期化ブロックの使用

public class FinalExample {
   final int num; {
      num = 500;
   }
   public static void main(String args[]){
      FinalExample obj = new FinalExample();
      System.out.println(obj.num);
   }
}

出力

500

finalメソッドの場合を除いて、他の3つの方法すべてでfinal変数を初期化すると、クラスをインスタンス化するとすぐに初期化されます。


  1. Javaでpack()メソッドを使用できるのはいつですか?

    pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p

  2. Javaの最終変数

    最終変数は明示的に一度だけ初期化できます。 finalとして宣言された参照変数を、別のオブジェクトを参照するように再割り当てすることはできません。 ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。 変数を使用する場合、最終修飾子 多くの場合、定数をクラス変数にするためにstaticとともに使用されます。 例 public class Test {    final int value = 10;    // The following are examples of declaring