一. final
final常見的四種用法:
可以用來修飾乙個類,方法,區域性變數和成員變數
1.
當final關鍵字用來修飾乙個類的時候
注意:1.1這個類不能有任何的子類(太監類),但是他可以有父類
1.2 乙個類如果是final的,那麼其中所有的成員方法都無法進行覆蓋重寫,因為沒子類
2.當final關鍵字用於修飾成員方法
2.1 當final關鍵字用來修飾乙個方法的時候,這個方法就是最終方法,也就是不能覆蓋重寫.
2.2 注意事項:對於類,方法來說,abstract 和final 是不能同時使用,因為矛盾。,abstract定義的抽象方法是一定要被覆蓋重寫的,而final就是不能覆蓋重寫。
3.final關鍵字作用於區域性變數(只能賦值一次)
3.1一旦使用final用來修飾區域性變數,那麼這個變數就不能進行更改,一次賦值,終生不變。
3.2 對於基本型別來說,不可變說的是變數當中的資料不可改變。
但是對於引用型別來說,不可變說的是變數當中的位址值不可改變,但是內容可以改變(你叫a ,你改名成b ,但是你住的地方還是不變的。)
//建立乙個學生類 並且有構造方法
public
class
students
public
students
(string name)
public
string
getname()
public
void
setname
(string name)
public
static
void
main
(string
args)
}
4.final關鍵字用於修飾成員變數
1.成員變數具有預設值值,所以用了final之後必須手動賦值,不會再給預設值了
2.對於final成員變數,要麼使用直接賦值,要麼通過構造方法賦值。
注意:二者只能選其一
3.如果選擇第2個方法,必須保證類當中所有過載的構造方法,都最終會對final的成員變數進行賦值(至少有乙個構造方法要對其賦值),並且刪掉setter方法。
//第二種
public
class
person
public
person
(string name)
public
string
getname()
//沒有setter方法了
二.許可權修飾符
public > protected> (default) > private
同乙個類 (我自己) yes yes yes yes
同乙個包 (我鄰居) yes yes yes no
不同包子類 (我兒子) yes yes no no
不同包非子類 (陌生人) yes no no no
注意:1.(default) 並不是default 是沒寫
2.在不同包 子類裡面,必須是嚴格的乙個包,如a包裡面有b包 和a類 b包裡面有b類,對於a類 b類來說。這是不同包
final關鍵字用法
final 變數 final 變數能被顯式地初始化並且只能初始化一次。被宣告為 final 的物件的引用不能指向不同的物件。但是 final 物件裡的資料可以被改變。也就是說 final 物件的引用不能 改變,但是裡面的值可以改變。final 修飾符通常和 static 修飾符一起使用來建立類常量。...
final關鍵字用法
當用final去修飾乙個類的時候,表示這個類不能被繼承。注意 a.被final修飾的類,final類中的成員變數可以根據自己的實際需要設計為fianl。b.final類中的成員方法都會被隱式的指定為final方法。說明 在自己設計乙個類的時候,要想好這個類將來是否會被繼承,如果可以被繼承,則該類不能...
final關鍵字的用法
final在修飾類的時候怎麼理解,因為繼承打破了類的封裝性,之前的類假如能通過c語言等和作業系統直接打交道,你繼承了那麼你能進行重寫 重寫了那還能和作業系統打交道了嗎?final保證封裝性的一種方法 final 最終。作為乙個修飾符,1,可以修飾類,函式,變數。2,被final修飾的類不可以被繼承。...