[英]Final variable initialization in Java
我理解這段代碼,它輸出:0,4:
class A{
A() { print(); }
void print() { System.out.println("A"); }
}
class B extends A{
int i = 4;
public static void main(String[] args){
A a = new B();
a.print();
}
void print() { System.out.println(i); }
}
我不明白如果將int = 4
更改為final int = 4
為什么會顯示4,4? 為什么final之前要初始化?
class A{
A() { print(); }
void print() { System.out.println("A"); }
}
class B extends A{
final int i = 4;
public static void main(String[] args){
A a = new B();
a.print();
}
void print() { System.out.println(i); }
}
誰能解釋這個示例中初始化的過程?
在這里, B
類的i
是在執行構造函數上初始化的類變量(i變量分配了int內存並初始化了默認數據)。
任何最終變量均可通過以下選項之一進行初始化。
同時聲明變量final int i=4;
因此,在執行構造函數后,這里分配並使用分配的值初始化。 驗證這一點。
B(){print(); }將顯示為:4,以最終值初始化。
我們可以在構造函數中初始化最終值,如下所示
最終詮釋 B(){i = 4; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.