• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    java中的關(guān)鍵字final用法剖析

    2018-01-15 21:23:21劉志雄
    世紀(jì)之星·交流版 2017年8期
    關(guān)鍵詞:變量方法

    劉志雄

    [摘 要]final關(guān)鍵字在java中的應(yīng)用至關(guān)重要。使用final關(guān)鍵字可以使JVM優(yōu)化變量、方法和類(lèi),在多線程環(huán)境下,可以進(jìn)行安全的共享,減少了同步開(kāi)銷(xiāo)。本文結(jié)合簡(jiǎn)單實(shí)例對(duì)final關(guān)鍵字在變量、方法與類(lèi)中定義的用法進(jìn)行了深入的剖析。

    [關(guān)鍵詞]final;java;變量;方法;類(lèi)

    從英語(yǔ)單詞方面來(lái)看final的含義,有“最終的”“不可更改的”“決定性的”等意思。在java中,其也保留了此含義。final關(guān)鍵字可用于修飾類(lèi)、變量和方法,它有“這是無(wú)法改變的”或者“最終”或者“終結(jié)”的含義,因此被final修飾的類(lèi)、變量和方法具有以下特性:

    1.final修飾的類(lèi)不能被繼承。我們可以把這樣的類(lèi)叫做“最終類(lèi)”。

    2.final修飾的方法不能被子類(lèi)重寫(xiě)。我們把它叫做“最終方法”。

    3.final修飾的變量是常量,只能賦值一次。

    接下來(lái),我們分別從以上三個(gè)方面一一用簡(jiǎn)單實(shí)例來(lái)講解final關(guān)鍵字的用法。

    一、final在變量定義中的用法

    用例如下:

    class animal {

    final String name;

    public void f(){

    System.out.print(“這只動(dòng)物名字叫:”+name);

    }

    public static void main(String[] args){

    animal aa=new animal( );

    aa.f();

    }}

    對(duì)代碼進(jìn)行編譯時(shí),出現(xiàn)如下錯(cuò)誤提示:

    這是因?yàn)槭褂胒inal關(guān)鍵字修飾成員變量時(shí),虛擬機(jī)不會(huì)對(duì)其進(jìn)行初始化。因此使用final修飾成員變量時(shí),需要在定義變量的同時(shí)賦予一個(gè)初始值,下面將第2行代碼修改為:

    final String name = "貓"; 為final關(guān)鍵字修飾的name屬性賦值。但是,如果我們?cè)诘?行代碼前加上語(yǔ)句:name=”狗”;這時(shí)編譯結(jié)果為:

    從以上情況說(shuō)明final修飾變量時(shí),必須對(duì)變量進(jìn)行初化,一旦初化,該變量的值不能被改變,即常量。

    二、final在方法定義中的用法

    用例如下:

    class animal {

    final String name="貓";

    final public void f(){

    System.out.print(name);}

    class dog extends animal{

    void f(){

    System.out.print("狗叫汪汪汪");

    } }

    public static void main(String[] args) {

    dog as=new dog();

    as.f();} }

    對(duì)代碼進(jìn)行編譯時(shí),出現(xiàn)如下錯(cuò)誤提示:

    這是因?yàn)閒()方法被final修飾了,dog子類(lèi)不能重寫(xiě)父類(lèi)里的f()方法??梢?jiàn),final修飾的方法是該類(lèi)里的“終結(jié)”方法,不能被重寫(xiě),但是可以繼承使用,即子類(lèi)可以調(diào)用父類(lèi)里final修飾的方法。

    三、final在類(lèi)定義中的用法

    用例如下:

    final class animal {

    final String name="貓";

    final public void f(){

    System.out.print(name);}

    class dog extends animal{

    }

    public static void main(String[] args) {

    dog as=new dog();

    as.f();} }

    對(duì)代碼進(jìn)行編譯,錯(cuò)誤提示為:

    這是因?yàn)閍nimal類(lèi)用final修飾了,一個(gè)類(lèi)一旦用final修飾,那么這個(gè)類(lèi)就不用有子類(lèi)了,即final修飾的類(lèi)為“最終類(lèi)”。

    四、結(jié)語(yǔ)

    由以上敘述可知:final修飾的變量表示常量,定義里就得初始化,且只能被賦值一次,賦值后值不再改變;final修飾的方法不能被子類(lèi)來(lái)重寫(xiě),但是可以被子類(lèi)繼承,即子類(lèi)可以直接調(diào)用父類(lèi)里final修飾的方法;final修飾的類(lèi)不能被繼承,即該類(lèi)不可能有子類(lèi)。

    參考文獻(xiàn):

    [1] http://www.importnew.com/7553.html.

    [2] 高永強(qiáng),Java編程藝術(shù)[M].北京:清華大學(xué)出版社,2009.

    [3] 王善發(fā),吳道榮,Java編程中static和final關(guān)鍵字的陷阱,保山學(xué)院學(xué)報(bào),2012,31(5):19-22.

    [4] 安博教育集團(tuán),Java核心技術(shù)[M].北京:電子工業(yè)出版社,2012.

    基金項(xiàng)目:湖南省教育科學(xué)“十三五”規(guī)劃2017年度課題:XJK17BGD083 。endprint

    猜你喜歡
    變量方法
    抓住不變量解題
    也談分離變量
    可能是方法不對(duì)
    用對(duì)方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    SL(3,3n)和SU(3,3n)的第一Cartan不變量
    四大方法 教你不再“坐以待病”!
    Coco薇(2015年1期)2015-08-13 02:47:34
    捕魚(yú)
    分離變量法:常見(jiàn)的通性通法
    青田县| 曲沃县| 峨眉山市| 洪泽县| 丹寨县| 沅江市| 太仓市| 孝感市| 永胜县| 邵阳县| 利津县| 井陉县| 临桂县| 苍溪县| 赞皇县| 东乌珠穆沁旗| 定陶县| 潜山县| 德格县| 长岛县| 出国| SHOW| 江山市| 平远县| 合作市| 台州市| 大宁县| 濮阳县| 广州市| 吉林市| 沧州市| 石林| 满洲里市| 宣恩县| 盈江县| 保定市| 阿坝县| 江门市| 开封县| 永清县| 那坡县|