日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

final 实例域+final类+final方法(阻止继承)

發(fā)布時(shí)間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 final 实例域+final类+final方法(阻止继承) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【0】README

0.1)本文描述+源代碼均 轉(zhuǎn)自 core java volume 1, 旨在理清 “final 實(shí)例域”;
0.2) 最后還增加了 阻止繼承 的內(nèi)容,涵蓋了final類+final方法;
0.3) 引入了 內(nèi)聯(lián) 以及 即時(shí)編譯器對(duì)方法進(jìn)行內(nèi)聯(lián)處理


【1】final相關(guān)

1.1) final 大都應(yīng)用于 基本數(shù)據(jù)域, 或不可變類的域; final 域被設(shè)置后, 不能再對(duì)它進(jìn)行更改, 即沒有 setter 更改器方法;
1.2)不可變的類:如果類中的每個(gè)方法都不會(huì)改變其對(duì)象,這種類就是不可變的類;
1.3)對(duì)于可變的類: 使用final修飾符可能會(huì)對(duì)讀者造成混亂,如:private final GregorianCalendar entryTime;
Attention)

  • A1)這僅僅意味著存儲(chǔ)在 entryTime 變量中的對(duì)象引用在對(duì)象構(gòu)造后不能被改變, 并不是說 entryTime 對(duì)象是一個(gè)常量, 任何方法都可以對(duì) entryTime 引用的對(duì) 象調(diào)用 setTime更改器(注意,這里是 setTime(), 而不是 setEntryTime() ); (也就是說,entryTime 指針只能指向 初始化的 內(nèi)存地址空間, 虛擬機(jī)停止運(yùn)行前,它不能指向另外的內(nèi)存地址空間)
  • A2)也即是, 對(duì)于final的 對(duì)象(對(duì)象就是引用)變量來講,它在對(duì)象創(chuàng)建的時(shí)候, 它所引用的地址是至始至終不會(huì)改變的, 但是該引用地址(對(duì)象)上的值是可以改變的, 下圖中的 setTime 更改了final entryTime 的 日歷日期,但是沒有改變它的引用地址;

【2】看個(gè)荔枝:


【3】阻止繼承:final 類 和 方法

3.1)不允許擴(kuò)展的類被稱為final類: 如,

final class Executive extends Manager {...... }

3.2)類中的方法也可以被聲明為final, 那么,子類就不能覆蓋這個(gè)方法了(final類中的所有方法自動(dòng)地成為final方法)

class Employee {......public final String getName(){return name;} }

Annotation) 對(duì)于final域來說,構(gòu)造對(duì)象后就不允許改變他們的值了,不過如果將一個(gè)類聲明為final, 只有其中的方法自動(dòng)地成為final, 而不包括域;
3.3)內(nèi)聯(lián):如果一個(gè)方法沒有被覆蓋并且很短,編譯器就能夠?qū)λM(jìn)行優(yōu)化處理,這個(gè)過程就稱為內(nèi)聯(lián);如, 內(nèi)聯(lián)調(diào)用e.getName() 將被替換為 訪問 e.name 域;
3.4)即時(shí)編譯器對(duì)方法進(jìn)行內(nèi)聯(lián)處理: 虛擬機(jī)中的即時(shí)編譯器比傳統(tǒng)編譯器的處理能力強(qiáng)得多, 這個(gè)編譯器可以準(zhǔn)確誰知道類之間的繼承關(guān)系,并能夠檢測出類中是否
真正地存在覆蓋給定的方法, 如果方法很短,被頻繁調(diào)用且沒有真正地被覆蓋,那么即時(shí)編譯器就會(huì)將這個(gè)方法進(jìn)行內(nèi)聯(lián)處理;

總結(jié)

以上是生活随笔為你收集整理的final 实例域+final类+final方法(阻止继承)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。