欧美经典日韩精品_日韩高清亚洲日韩精品一区_日韩精品无码综合视频网_国产v亚洲v天堂?无码久久_中文字幕免费无码专区

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

當(dāng)前位置:首頁  >  IT問答庫  >  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語規(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ā)生改變。

最新問答資訊

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

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

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

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

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

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

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

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

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

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

相關(guā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ì)陌生,二者都是編程語...

java中什么是繼承?

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

java byte取值范圍是什么?

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

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

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

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