日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中final关键字的用法

發(fā)布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中final关键字的用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

final:adj. 最終的,不可改變的

我們就取其字面意思”不可改變的“。

final可以修飾類、方法、變量。那么分別是什么作用呢?

  (1)修飾類:表示類不可被繼承

  (2)修飾方法:表示方法不可被覆蓋

  (3)修飾變量:表示變量一旦被賦值就不可以更改它的值。java中規(guī)定final修飾成員變量必須由程序員顯示指定變量的值。

?

final修飾成員變量時,要在哪里執(zhí)行初始值

  (1)如果final修飾的是類變量,只能在靜態(tài)初始化塊中指定初始值或者聲明該類變量時指定初始值。

  (2)如果final修飾的是成員變量,可以在非靜態(tài)初始化塊、聲明該變量或者構(gòu)造器中執(zhí)行初始值。

注意,只能在一個地方指定初始值!!

?

final修飾局部變量

  系統(tǒng)不會為局部變量進(jìn)行初始化,局部變量必須由程序員顯示初始化。因此使用final修飾局部變量時,即可以在定義時指定默認(rèn)值(后面的代碼不能對變量再賦值),也可以不指定默認(rèn)值,而在后面的代碼中對final變量賦初值(僅一次)。

final修飾基本類型變量和引用類型變量的區(qū)別?

  final修飾基本類型變量時,不能對基本類型重新賦值。

但是,對于引用型變量,它僅僅保存的是一個引用,final保證的是這個引用類型的變量所引用的地址不會變。即一直引用同一個對象,但是這個對象的值可以改變。

class Person() {private int age; public Person(){}public Person(int age){this.age = age;} } public class FinalReferenceTest {main(){final int[] iArr={1,2,3,4};Arrays.sort(iArr);//合法iArr[2]=-3;//合法 iArr=null;//非法,對iArr不能重新賦值final Person p = new Person(25);p.setAge(24);//合法p=null;//非法 } }

  

final修飾方法

  final修飾的方法不能被重寫。例如Object類中的getClass()方法就是final方法。不能被重寫。

  父類中private的方法,在子類中不能訪問該方法,但是子類中仍然可以定義一個與父類private方法有相同的方法名、相同的形參列表和相同的返回值的方法,不屬于方法重寫,只是定義了一個新的方法。

  final修飾的方法僅僅是不能被重寫,并不是不能被重載。下面的代碼,是方法重載,仍然沒有錯誤!

public class FinalClass {public final void test(){}public final void test(int i){} }

  

final修飾類

final修飾的類不能被繼承!

?

總結(jié)

以上是生活随笔為你收集整理的java中final关键字的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。