簡體   English   中英

Java中的最終變量初始化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM