黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java編程中的final使用方法

Java編程中的final使用方法

更新時(shí)間:2020-07-17 16:36:09 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2463次

final關(guān)鍵字

在java中,final的含義在不同的場(chǎng)景下有細(xì)微的差別,但總體來(lái)說(shuō),它指的是"這是不可變的".下面,我們來(lái)講final的四種主要用法.

1.修飾數(shù)據(jù)

在編寫(xiě)程序時(shí),我們經(jīng)常需要說(shuō)明一個(gè)數(shù)據(jù)是不可變得,我們稱(chēng)之為常量,在java中,用final關(guān)鍵字修飾的變量,只能進(jìn)行一次賦值操作,并且在生命周期內(nèi)不可以改變它的值.更重要的是,final會(huì)告訴編輯器,這個(gè)數(shù)據(jù)是不會(huì)修改的,那么編譯器就可能會(huì)在編譯時(shí)期就對(duì)該數(shù)據(jù)進(jìn)行替換甚至執(zhí)行計(jì)算,這樣可以對(duì)我們的程序起到一點(diǎn)優(yōu)化.不過(guò)在針對(duì)基本類(lèi)型和引用類(lèi)型時(shí),final關(guān)鍵字的效果存在細(xì)微差別.

我們來(lái)看下面的例子:

class?Value?{
????int?v;
????public?Value(int?v)?{
????????this.v?=?v;
????}
}
public?class?FinalTest?{
????
????final?int?f1?=?1;
????final?int?f2;
????public?FinalTest()?{
????????f2?=?2;
????}
????public?static?void?main(String[]?args)?{
????????final?int?value1?=?1;
????????//?value1?=?4;
????????final?double?value2;
????????value2?=?2.0;
????????final?Value?value3?=?new?Value(1);
????????value3.v?=?4;
????}
}

在上面的例子中,我們先看一下main方法中的幾個(gè)final修飾的數(shù)據(jù),在給value1賦初始值之后,我們無(wú)法對(duì)value1進(jìn)行修改,final關(guān)鍵字起到了常量的作用.從value2我們可以看到,final修飾的變量可以不再聲明時(shí)賦值,即可以先聲明,后賦值.value3是一個(gè)引用變量,這里我們可以看到final修飾引用變量時(shí),只是限定了引用變量的引用不可以改變,既不是將value3再次引用另一個(gè)value對(duì)象,但是引用的對(duì)象的值是可以改變的,從內(nèi)存模型中我們看的更加清晰:

從上面,final修飾的值是用粗線(xiàn)條的邊框表示它的值是不可改變的,我們知道引用變量的值實(shí)際是它的引用的地址,也就是說(shuō)該地址的值是不可改變的,從而說(shuō)明了為什么不可以改變引用變量.而實(shí)際引用的對(duì)象實(shí)際上是不受final關(guān)鍵字的影響的,所以他的值是可以改變的.

另一方面,我們看到了用final修飾成員變量時(shí)的細(xì)微差別,因?yàn)閒inal修飾的數(shù)據(jù)的值是不可改變的,所以我們必須確保在使用前就已經(jīng)對(duì)成員變量賦值了.因此對(duì)于final修飾的成員變量,餓哦們有且只要兩個(gè)地方可以給它賦值,一個(gè)聲明該成員變量時(shí)賦值,另一個(gè)是在構(gòu)造方法中賦值,在這兩個(gè)地方必須給它們賦初始值.

最后我們需要注意的一點(diǎn)是,同時(shí)使用static和final修飾的成員在內(nèi)存中只占據(jù)一段不能改變的存儲(chǔ)空間.

2.修飾方法參數(shù)

前面我們可以看到,如果變量是我們自己創(chuàng)建的,那么使用final修飾表示我們只會(huì)給它賦值一個(gè)且不會(huì)改變變量的值.那么如果變量是做參數(shù)傳入的,我們?cè)趺幢WC他的值不會(huì)改變呢?這就用到了final的第二種用法,即在我們編寫(xiě)方法時(shí),可以在參數(shù)前面添加fianl關(guān)鍵字,它表示在整個(gè)方法中,餓哦們不會(huì)(實(shí)際上是不能)改變參數(shù)的值:

public?class?FinalTest?{
????/*?...?*/

????public?void?finalFunc(final?int?i,?final?Value?value)?{
????????//?i?=?5;?不能改變i的值
????????//?v?=?new?Value();?不能改變v的值
????????value.v?=?5;?//?可以改變引用對(duì)象的值
????}
}

3.修飾方法

第三種方式,即使用final關(guān)鍵字修飾方法,它表示該方法不能被覆蓋,這種使用方法主要從設(shè)計(jì)的角度考慮,即明確告訴其他繼承該類(lèi)的程序員,不希望它們?nèi)ジ采w這個(gè)方法.這種方式我們很容易理解,然而,關(guān)于private和final關(guān)鍵字還有一些聯(lián)系,這就是類(lèi)中所有的private方法都隱示地指定為final的,由于無(wú)法在類(lèi)外使用private方法,所以也就無(wú)法覆蓋它

4.修飾類(lèi)

了解了final關(guān)鍵字的其他用法,我們很容易可以想到使用final關(guān)鍵字修飾類(lèi)的作用,那就是用final修飾的類(lèi)是無(wú)法被繼承的。

上面我們講解了final的四種用法,然而,對(duì)于第三種和第四種用法,我們卻甚少使用。這不是沒(méi)有道理的,從final的設(shè)計(jì)來(lái)講,這兩種用法甚至可以說(shuō)是雞肋,因?yàn)閷?duì)于開(kāi)發(fā)人員來(lái)講,如果我們寫(xiě)的類(lèi)被繼承的越多,就說(shuō)明我們寫(xiě)的類(lèi)越有價(jià)值,越成功。即使是從設(shè)計(jì)的角度來(lái)講,也沒(méi)有必要將一個(gè)類(lèi)設(shè)計(jì)為不可繼承的。Java標(biāo)準(zhǔn)庫(kù)就是一個(gè)很好的反例,特別是Java 1.0/1.1中Vector類(lèi)被如此廣泛的運(yùn)用,如果所有的方法均未被指定為final的話(huà),它可能會(huì)更加有用。如此有用的類(lèi),我們很容易想到去繼承和重寫(xiě)他們,然而,由于final的作用,導(dǎo)致我們對(duì)Vector類(lèi)的擴(kuò)展受到了一些阻礙,導(dǎo)致了Vector并沒(méi)有完全發(fā)揮它應(yīng)有的全部?jī)r(jià)值。

Java編程中的final使用方法

Java技術(shù)內(nèi)容

Java中final關(guān)鍵字的作用:http://m.ilovecolors.com.cn/tutorial_java_advance/607.html

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java編程中的final使用方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产人免费人成免费视频 | 午夜亚洲国产成人不卡在线 | 亚洲精品亚洲人成在线观看麻豆 | 91在线老王精品免费播放 | 欧美色射 | 亚洲日日干 | 窝窝社区在线观看www | 国产第四页 | 天天艹夜夜艹 | 丰满寡妇一级毛片 | 东京加勒比中文字幕波多野结衣 | 制服女子校生在线调教 | 黄色福利视频网站 | 91香蕉视频苹果 | 一级黄色视 | 九九热在线精品视频 | 婷婷深爱网 | 在线观看视频一区二区 | 男女啪啪免费体验区 | 国产综合视频在线观看 | 天天狠天天透 | 欧美国产成人精品一区二区三区 | 欧美日韩在线国产 | 在线观看免费播放网址成人 | 播放欧亚一级特黄录像 | 麻豆精品不卡国产免费看 | 亚洲国产成人精品激情 | 欧美×x| 精品久久久久久综合日本 | 亚洲天堂网在线播放 | 日本爽爽爽爽爽爽免费 | 久久久国产成人精品 | 一级黄色片在线看 | 在线精品播放 | 欧美日韩一级黄色片 | 狠狠插入视频 | 国产精品视频一区二区三区不卡 | 9re视频这里只有精品 | 久久精品成人免费网站 | 羞羞视频免费观看网站 | 成人网视频在线观看免费 |