亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java關鍵字final使用方法詳解

2019-11-26 15:53:54
字體:
來源:轉載
供稿:網友

它所表示的是“這部分是無法修改的”。不想被改變的原因有兩個:效率、設計。使用到final的有三種情況:數據、方法、類。

一、 final數據

有時候數據的恒定不變是很有用的,它能夠減輕系統運行時的負擔。對于這些恒定不變的數據我可以叫做“常量”?!俺A俊敝饕獞门c以下兩個地方:
1、編譯期常量,永遠不可改變。
2、運行期初始化時,我們希望它不會被改變。
對于編譯期常量,它在類加載的過程就已經完成了初始化,所以當類加載完成后是不可更改的,編譯期可以將它代入到任何用到它的計算式中,也就是說可以在編譯期執行計算式。當然對于編譯期常量,只能使用基本類型,而且必須要在定義時進行初始化。
有些變量,我們希望它可以根據對象的不同而表現不同,但同時又不希望它被改變,這個時候我們就可以使用運行期常量。對于運行期常量,它既可是基本數據類型,也可是引用數據類型?;緮祿愋筒豢勺兊氖瞧鋬热?,而引用數據類型不可變的是其引用,引用所指定的對象內容是可變的。

復制代碼 代碼如下:

public class Person {
    private String name;

    Person(String name){
  this.name = name;
    }

    public String getName() {
  return name;
    }

    public void setName(String name) {
  this.name = name;
    }
}

public class FinalTest {
    private final String final_01 = "chenssy";    //編譯期常量,必須要進行初始化,且不可更改
    private final String final_02;    //構造器常量,在實例化一個對象時被初始化

    private static Random random = new Random();
    private final int final_03 = random.nextInt(50);    //使用隨機數來進行初始化

    //引用
    public final Person final_04 = new Person("chen_ssy");    //final指向引用數據類型

    FinalTest(String final_02){
  this.final_02 = final_02;
    }

    public String toString(){
  return "final_01 = " + final_01 +"   final_02 = " + final_02 + "   final_03 = " + final_03 +
   "   final_04 = " + final_04.getName();
    }

    public static void main(String[] args) {
  System.out.println("------------第一次創建對象------------");
  FinalTest final1 = new FinalTest("cm");
  System.out.println(final1);
  System.out.println("------------第二次創建對象------------");
  FinalTest final2 = new FinalTest("zj");
  System.out.println(final2);
  System.out.println("------------修改引用對象--------------");
  final2.final_04.setName("chenssy");
  System.out.println(final2);
    }
}

------------------
Output:
------------第一次創建對象------------
final_01 = chenssy   final_02 = cm   final_03 = 34   final_04 = chen_ssy
------------第二次創建對象------------
final_01 = chenssy   final_02 = zj   final_03 = 46   final_04 = chen_ssy
------------修改引用對象--------------
final_01 = chenssy   final_02 = zj   final_03 = 46   final_04 = chenssy

這里只闡述一點就是:不要以為某些數據是final就可以在編譯期知道其值,通過final_03我們就知道了,在這里是使用隨機數其進行初始化,他要在運行期才能知道其值。

二、 final方法

所有被final標注的方法都是不能被繼承、更改的,所以對于final方法使用的第一個原因就是方法鎖定,以防止任何子類來對它的修改。至于第二個原因就是效率問題,鄙人對這個效率問題理解的不是很清楚,在網上摘抄這段話:在java的早期實現中,如果將一個方法指明為final,就是同意編譯器將針對該方法的所有調用都轉為內嵌調用。當編譯器發現一個final方法調用命令時,它會根據自己的謹慎判斷,跳過插入程序代碼這種正常的調用方式而執行方法調用機制(將參數壓入棧,跳至方法代碼處執行,然后跳回并清理棧中的參數,處理返回值),并且以方法體中的實際代碼的副本來代替方法調用。這將消除方法調用的開銷。當然,如果一個方法很大,你的程序代碼會膨脹,因而可能看不到內嵌所帶來的性能上的提高,因為所帶來的性能會花費于方法內的時間量而被縮減。
對這段話理解我不是很懂就照搬了,那位java牛人可以解釋解釋下!!
父類的final方法是不能被子類所覆蓋的,也就是說子類是不能夠存在和父類一模一樣的方法的。

復制代碼 代碼如下:

public class Custom extends Person{
    public void method1(){
  System.out.println("Person's  method1....");
    }

//    Cannot override the final method from person:子類不能覆蓋父類的final方法
//    public void method2(){
//  System.out.println("Person's method2...");
//    }
}

三、 final類

如果某個類用final修改,表明該類是最終類,它不希望也不允許其他來繼承它。在程序設計中處于安全或者其他原因,我們不允許該類存在任何變化,也不希望它有子類,這個時候就可以使用final來修飾該類了。
對于final修飾的類來說,它的成員變量可以為final,也可以為非final。如果定義為final,那么final數據的規則同樣適合它。而它的方法則會自動的加上final,因為final類是無法被繼承,所以這個是默認的。

四、 final參數

 在實際應用中,我們除了可以用final修飾成員變量、成員方法、類,還可以修飾參數、若某個參數被final修飾了,則代表了該參數是不可改變的。
如果在方法中我們修改了該參數,則編譯器會提示你:The final local variable i cannot be assigned. It must be blank and not using a compound assignment。

復制代碼 代碼如下:

public class Custom {
    public void test(final int i){
//i++;     ---final參數不可改變
  System.out.println(i);
    }

    public void test(final Person p){
     //p = new Person();    --final參數不可變
     p.setName("chenssy");
    }
}

同final修飾參數在內部類中是非常有用的,在匿名內部類中,為了保持參數的一致性,若所在的方法的形參需要被內部類里面使用時,該形參必須為final。

六、final與static

final和static在一起使用就會發生神奇的化學反應,他們同時使用時即可修飾成員變量,也可修飾成員方法。
對于成員變量,該變量一旦賦值就不能改變,我們稱它為“全局常量”??梢酝ㄟ^類名直接訪問。
對于成員方法,則是不可繼承和改變??梢酝ㄟ^類名直接訪問。 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产性猛交xxxx免费看久久| 久久久97精品| 操91在线视频| 欧美一级大片视频| 有码中文亚洲精品| 亚洲欧美一区二区三区四区| 精品国产乱码久久久久久天美| 欧美精品在线免费| 国产成+人+综合+亚洲欧洲| 久久五月天色综合| 日韩在线观看你懂的| 国产网站欧美日韩免费精品在线观看| 91av在线影院| 成人性生交大片免费看视频直播| 亚洲深夜福利网站| 欧美激情在线狂野欧美精品| 国产专区精品视频| 欧美一区亚洲一区| 在线中文字幕日韩| 欧美精品一区二区三区国产精品| 国产美女久久精品香蕉69| 亚洲最大福利视频网| 色伦专区97中文字幕| 欧美激情一二三| 亚洲欧美在线x视频| 免费av在线一区| 亚洲欧美999| 欧美第一页在线| 91a在线视频| 91av网站在线播放| 亚洲国产精品电影| 日韩激情在线视频| 色综合久综合久久综合久鬼88| 成人在线中文字幕| 2020国产精品视频| 美女av一区二区三区| 成人国内精品久久久久一区| 日韩一区二区福利| 97欧美精品一区二区三区| 日韩中文在线中文网在线观看| 亚洲女同精品视频| 精品久久久久久中文字幕大豆网| 成人精品视频久久久久| 欧美日韩在线视频首页| 欧美性xxxx极品高清hd直播| 亚洲免费精彩视频| 红桃av永久久久| 欧美成人免费在线观看| 97福利一区二区| 亚洲一区999| 国产成人啪精品视频免费网| 中文字幕日韩高清| 欧美电影在线观看完整版| 揄拍成人国产精品视频| 岛国精品视频在线播放| 中文字幕国产亚洲| 高跟丝袜欧美一区| 欧美一级淫片videoshd| www.日本久久久久com.| 国产精品视频内| 国产精品自拍偷拍| 亚洲国产成人精品一区二区| 久久久久99精品久久久久| 亚洲国产精品va在线看黑人| 国产精品高潮呻吟久久av黑人| 夜夜嗨av色一区二区不卡| 日本欧美一级片| 久久精品视频中文字幕| 精品久久久在线观看| 亚洲丁香久久久| 亚洲色图第一页| 国产香蕉97碰碰久久人人| 日韩精品视频免费| 国产欧美婷婷中文| 亚洲第一网站免费视频| 欧美专区在线播放| 国产精品美乳一区二区免费| 在线成人免费网站| 欧美专区在线播放| 精品呦交小u女在线| 亚洲美女视频网| 色香阁99久久精品久久久| 久久精品国产成人| 欧美最猛黑人xxxx黑人猛叫黄| 精品人伦一区二区三区蜜桃免费| 69av视频在线播放| 91中文在线视频| 欧美亚洲第一页| 国产亚洲免费的视频看| 欧美成人高清视频| 国产综合在线视频| 一区二区三区黄色| 影音先锋日韩有码| 精品久久久久久电影| 一区二区三区天堂av| 日韩暖暖在线视频| www.久久草.com| 狠狠操狠狠色综合网| 亚洲精品一区二区在线| 欧美电影免费观看网站| 亚洲深夜福利网站| 久久久亚洲精品视频| www.欧美精品| 亚洲精品网站在线播放gif| 亚洲三级黄色在线观看| 国产精品永久免费在线| 7777精品视频| 理论片在线不卡免费观看| 狠狠久久亚洲欧美专区| 日韩动漫免费观看电视剧高清| 91精品国产91久久久久久久久| 中文字幕日韩av| 日韩小视频在线观看| 国产精品久久久久久亚洲影视| 2019中文在线观看| 国产婷婷97碰碰久久人人蜜臀| 国产91色在线免费| 97婷婷涩涩精品一区| 狠狠操狠狠色综合网| 日韩不卡在线观看| 国产精品视频久久久| 原创国产精品91| 日韩精品免费在线视频| 亚洲free性xxxx护士hd| 亚洲一区亚洲二区亚洲三区| 日韩av电影免费观看高清| 国产精品福利网| 少妇精69xxtheporn| 激情av一区二区| 亚洲经典中文字幕| 中文字幕欧美精品在线| 欧美成人午夜免费视在线看片| 国产91在线高潮白浆在线观看| 日韩一区二区三区xxxx| 日本欧美一级片| 97久久精品人搡人人玩| www高清在线视频日韩欧美| 日本乱人伦a精品| 欧美精品久久久久久久免费观看| 国产一区二区激情| 国产成人鲁鲁免费视频a| 中文字幕精品久久久久| 日韩在线免费视频| 欧美在线免费看| 伊人久久久久久久久久久| 欧美猛少妇色xxxxx| 久久久久国产一区二区三区| 蜜臀久久99精品久久久无需会员| 欧美夫妻性视频| 欧美极品美女视频网站在线观看免费| 亚洲品质视频自拍网| 日韩第一页在线| 8x拔播拔播x8国产精品| 国产精品视频公开费视频| 欧美激情精品久久久久久蜜臀| 69av成年福利视频| 91亚洲午夜在线| 国产日韩欧美中文| 欧美色播在线播放| 国产主播在线一区| 日韩av综合网| 亚洲女性裸体视频| 久久艳片www.17c.com| 欧美尺度大的性做爰视频|