歡迎提出意見與指正
首先眾所周知final修飾的意思是不可變得,最終的。
那么這個不可變得到底是什么呢 蚯姆?
不可變得指的是引用媒抠,是地址弟断,對象的內(nèi)容還是可以變得;
也就是說final永遠指向某個對象领舰,是一個常量指針夫嗓,而不是指向常量的指針迟螺。
被final關(guān)鍵字修飾的類,不能被繼承沒有子類舍咖,而且其內(nèi)的所有成員方法都會隱式的被final修飾矩父;
注意:不是特別需要 或者為了安全考慮最好不要用final修飾類。
2.修飾方法
一個類中的方法一旦被final關(guān)鍵字修飾排霉,則該方法就不能被子類重寫窍株,只能被繼承。所以如果父類中的某個方法不想被子類重寫攻柠,就可以用final關(guān)鍵字修飾球订。
final修飾的方法的特性:
1.該方法被鎖定,防止繼承類修改其意義和實現(xiàn)
2.高效
1.如果修飾的基本數(shù)據(jù)類型瑰钮,一旦被初始化冒滩,其數(shù)值是不能再被改變的。
2.final 修飾實例變量時(定義在類內(nèi)浪谴,類的屬性开睡,但是在類的方法之外,又成為類的成員變量)苟耻,必須初始化篇恒,且不可修改。
3.final修飾局部變量時(方法體內(nèi)的變量)只能初始化(賦值)一次凶杖,也可以不初始化胁艰;
4.final修飾方法參數(shù)時: 是在調(diào)用方法傳遞參數(shù)時初始化的。
5.final修飾引用類型變量時:表示其指向的地址不能變智蝠,即不能再讓其指向另一個對象腾么,但是該引用指向的對象里的內(nèi)容是可以改變的
6.當(dāng)用final修飾類的非靜態(tài)成員變量時,成員變量的初始化有兩種式:
1).在聲明時初始化
2)?.在聲明變量時可以不進行初始化杈湾,該變量被稱為blank final,即final空白哮翘,但是要在這個變量所在的類的所有
的構(gòu)造方法中對這個變量賦初值。
7.當(dāng)用final修飾類的靜態(tài)成員變量時毛秘,靜態(tài)成員變量的初始化方式也有兩種
1)在聲明時進行初始化
2)在靜態(tài)代碼塊里進行初始化