final關鍵字概念及四種用法

2022-07-09 10:30:12 字數 2056 閱讀 9857

概念:

final關鍵字代表最終、不可改變的。

常見四種用法:

1. 可以用來修飾乙個類

2. 可以用來修飾乙個方法

3. 還可以用來修飾乙個區域性變數

4. 還可以用來修飾乙個成員變數

修飾「類」:

當final關鍵字用來修飾乙個類的時候,格式:

public final class 類名稱

含義:當前這個類不能有任何的子類。(太監類)

注意:乙個類如果是final的,那麼其中所有的成員方法都無法進行覆蓋重寫(因為沒兒子。)

修飾「方法」:

當final關鍵字用來修飾乙個方法的時候,這個方法就是最終方法,也就是不能被覆蓋重寫。

格式:修飾符 final 返回值型別 方法名稱(引數列表)

注意事項:

對於類、方法來說,abstract關鍵字和final關鍵字不能同時使用,因為矛盾。

修飾區域性變數:

一旦使用final用來修飾區域性變數,那麼這個變數就不能進行更改。

對於基本型別來說,不可變說的是變數當中的資料不可改變

對於引用型別來說,不可變說的是變數當中的位址值不可改變

未使用final,可以改變位址值:

1         student stu1 = new student("趙麗穎");

2system.out.println(stu1);

3 system.out.println(stu1.getname()); //

趙麗穎4 stu1=new student("霍建華"); //將乙個新位址賦值給stu1,改變位址值

5system.out.println(stu1);

6 system.out.println(stu1.getname()); //

霍建華

執行結果:

(位址值不同)

使用final:

1

final student stu2 = new student("高圓圓");2//

錯誤寫法!final的引用型別變數,其中的位址不可改變3//

stu2 = new student("趙又廷");

4 system.out.println(stu2.getname()); //

高圓圓

注意:

1

//正確寫法,不改變位址值,改變位址所指向的物件中的內容

2 stu2.setname("高圓圓圓圓圓圓");

3 system.out.println(stu2.getname()); //

高圓圓圓圓圓圓

修飾成員變數:

對於成員變數來說,如果使用final關鍵字修飾,那麼這個變數也照樣是不可變。

1. 由於成員變數具有預設值,所以用了final之後必須手動賦值,不會再給預設值了。

2. 對於final的成員變數,要麼使用直接賦值,要麼通過構造方法賦值。二者選其一。(要去掉setter,因為setter是用來改變這個成員變數的)

3. 必須保證類當中所有過載的構造方法,都最終會對final的成員變數進行賦值。

1

public

class

person //

new的時候呼叫無參構造,就是 關曉彤89

public

person(string name) //

new的時候呼叫有參構造,就是 新設定的

1213

public

string getname()

1617

//public void setname(string name)

20 }

final關鍵字與四種用法

final關鍵字代表最終 不可改變的 常見四種用法 1.可以用來修飾乙個類 package cn.ly.day.seven.twentyfour 當final關鍵字用來修飾乙個類的時候,格式 public final class 類名稱 含義 當前這個類不能有任何的子類。注意 乙個子類如果是fina...

final關鍵字的四種用法

1.修飾乙個類 public final class 類名稱 含義 當前類不能有任何子類 太監類 乙個類如果是final,那麼其中的成員方法無法進行覆蓋重寫 因為沒有子類 但可以對父類進行覆蓋重寫 2.修飾乙個方法 當final關鍵字修飾乙個方法的時候,這個方法就是最後方法,不能覆蓋重寫 注意 ab...

詳解final關鍵字的常見四種用法

final關鍵字代表最終,不可改變的,常見四種用法 1 可以用來修飾乙個類 2 可以用來修飾乙個方法 3 可以用來修飾乙個區域性變數 4 可以用來修飾乙個成員變數。1 可以用來修飾乙個類 當final關鍵字用來修飾乙個類的時候 格式 public final class 類名稱 含義 當前這個類不能...