English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
靜態變數-靜態變數也稱為類變數。您可以使用關鍵字聲明一個靜態變數。一旦聲明了一個靜態變數,則無論在該類中創建了多少個物件,在類中都只有一個副本。
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