English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

空白最終変数とは何ですか?Javaの静的空白最終変数とは何ですか?

靜態變數-靜態變數也稱為類變數。您可以使用關鍵字聲明一個靜態變數。一旦聲明了一個靜態變數,則無論在該類中創建了多少個物件,在類中都只有一個副本。

public static int num =; 39;

實例變數-這些變數屬於類的實例(物件)。這些在類內但在方法外聲明。這些在實例化類時初始化。可以從該特定類的任何方法,構造函數或塊中訪問它們。

您必須使用物件訪問實例變數。也就是說,要訪問實例變數,您需要創建該類的物件,並使用該物件,您需要訪問這些變數。

final-聲明變數final後,您將無法為它重新賦值。

空白變數

沒有初始化的最終變數稱為空白最終變數。與實例變數一樣,最終變數不會使用默認值初始化。因此,在聲明最終變數後必須初始化它們

但是,如果您嘗試在代碼中使用空變數,則會生成編譯時錯誤。

在下面的Java程式中,Student類別包含兩個最終變數name和age,並且它們尚未初始化。

public class Student {
   public final String name;
   public final int age;
   public void display(){
      System.out.println("Name of the Student: ");+this.name);
      System.out.println("学生の年齢: ")}+this.age);
   }
   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;
                        ^
Student.java:4: error: variable age not initialized in the default constructor
   private final int age;
                     ^
2 errors

要解決此問題,您需要將聲明的最終變量初始化為-

public class Student {
   public final String name;
   public final int age;
   public Student(){
      this.name = "Raju";
      this.age =; 20;
   }
   public void display(){
      System.out.println("Name of the Student: ");+this.name );
      System.out.println("学生の年齢: ")}+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

出力結果

学生の名前: Raju
学生の年齢: 20

静的未初期化最終変数

同様に、静的変数として宣言された最終変数 final が初期化されていない場合、それを静的最終変数として見なします。

変数が静的変数と最終変数として宣言された場合、その初期化は静的ブロック内で行う必要があります。他の場所で初期化を試みると、コンパイラは値を再割り当てしようとしていると仮定し、コンパイル時エラーを生成します。-

class Data{
   static final int num;
   Data(int i){
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("定数の値: ");+Data.num);
   }
}

コンパイル時エラー

ConstantsExample.java:4: エラー: 最終変数 num に値を割り当てることはできません
   num = i;
   ^
1 エラー

したがって、静的最終変数は静的ブロックで初期化する必要があります。

このプログラムが正常に動作するためには、静的ブロック内で最終的な静的変数を初期化する必要があります。-

class Data{
   static final int num;
   static{
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("定数の値: ");+Data.num);
   }
}

出力結果

定数の値 1000
おすすめ