final關鍵字的用法和許可權修飾符

2021-10-18 12:00:52 字數 1755 閱讀 1034

一. 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修飾的類不可以被繼承。...