一区二区三区精品视频-一区二区三区国产美女在线播放-一区二区三区福利视频-一区二区三区福利-毛片大全免费看-毛片大片免费看

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁(yè)  >  IT問(wèn)答庫(kù)  >  Java基礎(chǔ)知識(shí)

Java中final關(guān)鍵字如何使用

發(fā)布:Java培訓(xùn) 2022-01-20 15:23

Java中final關(guān)鍵字如何使用

推薦答案

final變量只能賦值一次,賦值的方式有三種:

1)聲明變量時(shí)直接賦值;

2)非靜態(tài)成員變量在{}塊中賦值,靜態(tài)成員變量在static{}塊中賦值;

3)非靜態(tài)成員變量在構(gòu)造方法中賦值。

final修飾類

final類不能被繼承,因此不會(huì)有子類。final類中的方法不論是否有final修改,都是final的。

下面定義了一個(gè)簡(jiǎn)單的final類:

public final class FinalClass { }

//下面的類繼承將會(huì)出現(xiàn)編譯錯(cuò)誤

class Sub extends FinalClass { }

final修飾方法

final方法不能被override。若父類中的方法為final的,則子類不能override該方法,但可以調(diào)用該方法(父類的final方法)。

下面的程序試圖重寫final方法,將會(huì)引發(fā)編譯錯(cuò)誤:

public class FinalMethod {

public final void say () { }

}

class Sub extends FinalMethod {

//下面方法將會(huì)出現(xiàn)編譯錯(cuò)誤

public void say () { }

}

final成員變量

final修飾的變量不可被改變,意思是不能被重新賦值。由于final修飾的成員變量不能重新賦值,所以Java語(yǔ)規(guī)定:final修飾的成員變量必須由程序員顯示的指定初始值。

final修飾的類變量和實(shí)例變量指定初始值得地方如下:

1)類變量:必須在靜態(tài)初始化塊中指定初始值或聲明該類變量時(shí)指定初始值,而且只能二選一指定。

2)實(shí)例變量:必須在非靜態(tài)初始化塊、聲明該實(shí)例變量或構(gòu)造器中指定初始值,而且只能三選一指定。

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

當(dāng)final修飾基本類型變量時(shí),改基本類型變量不能被改變。但對(duì)于引用類型變量而言,它保存的僅僅只是引用,final只保證這個(gè)引用類型變量所引用的地址不會(huì)改變,即一直引用同一個(gè)對(duì)象,但這個(gè)對(duì)象完全可以發(fā)生改變。

最新問(wèn)答資訊

01 unity用什么編程語(yǔ)言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語(yǔ)言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語(yǔ)言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語(yǔ)言 可以
5062 人關(guān)注

04 c語(yǔ)言難學(xué)嗎?c語(yǔ)言學(xué)好要多久?

語(yǔ)言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問(wèn)題

計(jì)算機(jī)前端和后端區(qū)別,到底該學(xué)哪一個(gè)?

互聯(lián)網(wǎng)行業(yè)的發(fā)展速度很快,有關(guān)市場(chǎng)上對(duì)于it行業(yè)的人才需求量越...

java和php的區(qū)別是什么?哪一個(gè)更難一些?

有很多零基礎(chǔ)的小白想要去學(xué)習(xí)編程技術(shù),那么可以考慮一下java和...

java與java script的區(qū)別有哪些?

相信大多數(shù)同學(xué)對(duì)java、java script都不會(huì)陌生,二者都是編程語(yǔ)...

java中什么是繼承?

繼承的特點(diǎn):只需明確一點(diǎn),java只支持單繼承,不支持多繼承,但...

java byte取值范圍是什么?

同學(xué)您好,java byte取值范圍是什么?針對(duì)這個(gè)問(wèn)題可以看看下面的...

javascript和java有什么區(qū)別

1)基于對(duì)象和面向?qū)ο螅篔ava是一種真正的面向?qū)ο蟮恼Z(yǔ)言,即使是...

測(cè)一測(cè)
你知道多少IT梗

主站蜘蛛池模板: 郧西县| 忻州市| 出国| 沁水县| 大名县| 乌兰县| 湘乡市| 沐川县| 屏东市| 安溪县| 安义县| 长沙县| 永州市| 锡林浩特市| 东丰县| 黑河市| 西城区| 丹东市| 利津县| 都兰县| 两当县| 宣恩县| 巫山县| 海门市| 内黄县| 巩义市| 越西县| 遵义市| 班戈县| 林口县| 惠安县| 丽江市| 五峰| 靖宇县| 丘北县| 蒙自县| 昂仁县| 弥渡县| 河源市| 托里县| 朝阳县|