Java final關(guān)鍵字

2018-01-18 15:30 更新

Java面向?qū)ο笤O(shè)計 - Java final關(guān)鍵字


final關(guān)鍵字不允許修改或替換其原始值或定義。

final關(guān)鍵字可以在以下三個上下文中使用:

  • 變量聲明
  • 類聲明
  • 方法聲明

final 變量

如果一個變量被聲明為final,它只能被賦值一次。最終變量的值在設(shè)置后不能修改。

變量聲明包括局部變量的聲明,方法/構(gòu)造函數(shù)的形式參數(shù),實例變量和類變量。

變量聲明包括局部變量的聲明,方法/構(gòu)造函數(shù)的形式參數(shù),實例變量和類變量。

final int YES  = 1;

我們可以只設(shè)置一次final變量的值。

有兩種方法來初始化final變量:

  • 在聲明時予以初始化。
  • 將其初始化延遲到稍后的時間。

但是,我們必須在第一次讀取最終變量之前初始化它。

  • final局部變量

    你可以聲明一個局部變量fi??nal。如果將局部變量聲明為空的最終變量,則必須在使用前初始化它。

  • final參數(shù)

    我們可以聲明一個參數(shù)final。當(dāng)調(diào)用方法或構(gòu)造函數(shù)時,參數(shù)將使用實際參數(shù)的值自動初始化。

    因此,您不能更改方法或構(gòu)造函數(shù)體內(nèi)的最終形式參數(shù)的值。

  • final實例變量

    我們可以聲明一個實例變量final和blank final。

    空白最終實例變量必須初始化一次,并且只有在調(diào)用類的任何構(gòu)造函數(shù)時才初始化一次。

  • final類變量

    我們可以聲明一個類變量final和blank final。我們必須在其中一個靜態(tài)初始化器中初始化一個空的最終類變量。

  • final引用變量

    引用變量存儲對象的引用。最終引用變量意味著,一旦引用一個對象(或null),它就不能被修改以引用另一個對象。

以下代碼顯示了test2()方法的最終形式參數(shù)x:

public void  test2(final int x)  {

如果我們有一個類的多個靜態(tài)初始化器,我們必須在一個靜態(tài)初始化器中初始化所有空的最終類變量一次。

public class Main {
  public static final int YES = 1;
  public static final int NO = 2;
  public static final String MSG;

  static {
    MSG = "final static variable";
  }
}

final 類

如果一個類被聲明為final,它不能被擴展(或子類化)。

final 方法

如果一個方法聲明為final,它不能在包含該方法的類的子類中重新定義(覆蓋或隱藏)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號