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

空白のfinal変数をすべてのJavaコンストラクターで明示的に初期化する必要があるのはなぜですか?


初期化せずに残された最終変数は、空白の最終変数と呼ばれます。 。

通常、コンストラクターでインスタンス変数を初期化します。見逃した場合、デフォルト値でコンストラクターによって初期化されます。ただし、最後の空白変数はデフォルト値で初期化されません。したがって、コンストラクターで初期化せずに空白のfinal変数を使用しようとすると、コンパイル時エラーが生成されます。

public class Student {
   public final String name;
   public void display() {
      System.out.println("Name of the Student: "+this.name);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

コンパイル時エラー

コンパイル時に、このプログラムは次のエラーを生成します。

Student.java:3: error: variable name not initialized in the default constructor
   private final String name;
                        ^
1 error

したがって、最終変数を宣言したら、それを初期化する必要があります。クラスに複数のコンストラクターが指定されている場合は、すべてのコンストラクターで空白のfinal変数を初期化する必要があります。

public class Student {
   public final String name;
   public Student() {
      this.name = "Raju";
   }
   public Student(String name) {
      this.name = name;
   }
   public void display() {
      System.out.println("Name of the Student: "+this.name);
   }
   public static void main(String args[]) {
      new Student().display();
      new Student("Radha").display();
   }
}

出力

Name of the Student: Raju
Name of the Student: Radha

  1. Javaの最後のキーワード

    finalは、Java要素の非アクセス修飾子です。 final修飾子は、クラス、メソッド、および変数の実装を確定するために使用されます。 最終変数 最終変数は明示的に一度だけ初期化できます。 finalとして宣言された参照変数を、別のオブジェクトを参照するように再割り当てすることはできません。 ただし、オブジェクト内のデータは変更できます。したがって、オブジェクトの状態は変更できますが、参照は変更できません。 変数の場合、定数をクラス変数にするために、最後の修飾子がstaticとともに使用されることがよくあります。 例 public class Test {    fina

  2. 「無料のウェブサイト」を絶対に避けるべき理由

    だまされてはいけません。いわゆる「無料のウェブサイト」は、起こるのを待っている悪夢です。自分のウェブスペースにお金を払わないことで、多くの問題を回避していると思うかもしれません。つまり、余裕がないと思われるウェブサイトをホストするためにお金を払わなければなりません。 あなたが支払うつもりであることを除いて、あなたが思った方法ではありません。あなたのウェブサイトがトラフィックを遠ざける広告で覆われているとき、あなたは「支払う」でしょう。他の人が「https://gloverdesigns.totallyfreewebsite.com」を真剣に受け止めていないため、ネットワーキングの機会を失ったと