修飾詞final用法 屬性和注意事項

2021-10-25 15:28:44 字數 1284 閱讀 4783

final修飾的類無法被繼承

final

class

aclass

bextends

a

final修飾的方法無法覆蓋

classc}

class

dextends

a}

final修飾區域性變數只能賦值一次(區域性變數無預設值)

public

class

final

final修飾的引用變數,物件不可變,物件內容可以變

不可變如

public

class

final

final修飾的例項變數,必須手動賦值,要不無法通過編譯(例項變數不掛final建立後有預設值)

class

user

}

結論:final修飾的例項變數,系統不給賦預設值,想要賦值,要麼創造時就賦值,要麼在構造方法裡賦預設值之前賦值,只能賦一次值

高階:上乙個例子可以通過,但是例項變數在堆中,乙個物件乙份,100個物件就要100份,既然用final修飾了,說明例項變數不會隨著物件的變化而變化,既然這樣,沒必要宣告為例項變數,最好加static宣告為靜態變數,節省記憶體。靜態變數同等於類。

所以上面的例子中的例項變數要用static修飾,變為靜態的,儲存在方法區如下:

class

user

終極結論:static final 聯合修飾的變數稱為「常量」。常量名全部大寫,每個單詞之間用下劃線銜接。實際上常量和靜態變數一樣,都是儲存在方法區,並且都是在類載入時初始化。區別在於常量的值不能變。一般來說常量都是公開的,不用封裝

本章總結:

final修飾的類無法繼承;

final修飾的方法無法覆蓋;

final修飾的變數只能賦值一次;

final修飾的引用一旦指向某個物件,則不能再重新指向其他物件,但該引用指向的物件內部的資料是可以修改的;

final修飾的例項變數必須手動初始化,不能採用系統預設值;

final修飾的例項變數一般和static聯合使用,稱為常量

指令碼屬性修飾詞

1.header health settings 表示在下面字段新增標題 public int health 0 2.private int age 40 這個私有欄位不被序列化 serializefield 強制unity序列化的乙個字段,即使是私有的,也會被序列化 private bool ha...

java中final修飾詞的使用

關於final修飾詞 final可以修飾類 方法 變數 引數。1 修飾類。被final修飾的類將不能被繼承,因此該類中的方法將都不能被覆蓋。在開發此類時,如果確定該類中的所有方法不會被覆蓋,那麼就可以將該類用final進行修飾。不過這種方式一般採用的不多。public final class tes...

iOS OC 中的屬性修飾詞

屬性修飾詞首先,它是個啥子 我們用一張圖來看下 上圖綠色框框裡面都是屬性修飾詞,屬性修飾詞是oc的一大特點 說到屬性修飾詞之前,先說先xcode兩種編譯模式 arc 和 mrc 用乙個最直白的話說 arc 開發者不需要關係物件記憶體釋放情況,mrc則反之 這個和修飾詞有啥子關係了 我們用一張表來看下...