第五章 初始化與清理

用構(gòu)造器確保初始化

類里的數(shù)據(jù)成員荠割,有三個途徑初始化:

  • 默認(rèn)初始化玷或,一般都為0。即使沒有默認(rèn)構(gòu)造器毕莱,也會初始化
  • 直接初始化器贩,就是直接賦值
  • 構(gòu)造器(構(gòu)造函數(shù))初始化

重載

涉及基本類型的重載需要注意一下

  • 常數(shù)被當(dāng)做int
  • 如果傳入的數(shù)據(jù)類型小于方法中聲明的形式參數(shù),自動提升
  • char略有不同朋截,如果無法找到恰好接受char參數(shù)的方法蛹稍,就會把char提升為int
    注意不要通過返回值區(qū)分重載方法

默認(rèn)構(gòu)造器

默認(rèn)構(gòu)造器就是無參數(shù)構(gòu)造函數(shù),可以更改默認(rèn)構(gòu)造器部服。
如果定義了構(gòu)造器唆姐,編譯器就不會自動創(chuàng)建默認(rèn)構(gòu)造器

class Bird{
       Bird(int i){}
       Bird(double i) {}
 }
new Bird();//這樣就會找不到構(gòu)造器

this關(guān)鍵字

  • this關(guān)鍵字只能在方法內(nèi)部使用,表示對“調(diào)用方法的那個對象”的引用廓八。但要注意在方法內(nèi)部調(diào)用同一個類的另一個方法奉芦,就不比使用this赵抢,直接調(diào)用即可。
    當(dāng)需要返回對當(dāng)前對象的引用時声功,常常用return this
public class leaf{
int i=0;
leaf incres(){
        i++;
        return this;
}}
leaf x=new leaf();
x.incres().incres().i;//i=2
  • 將自身傳遞給外部方法時烦却,必須使用this關(guān)鍵字。
  • 在構(gòu)造器中調(diào)用構(gòu)造器可以用this先巴,必須放在構(gòu)造器的開頭其爵,一個構(gòu)造器內(nèi)只能有一個this。除了構(gòu)造器可以調(diào)用構(gòu)造器伸蚯,其他任何地方都不可以調(diào)用

static的含義

  • static是沒有this的方法摩渺。(還不理解)
  • static方法不能調(diào)用非靜態(tài)方法〖劣剩可以直接通過類調(diào)用(主要用途)
  • 在類中置入static方法就可以訪問其他static方法和static域

清理:終結(jié)處理和垃圾回收

finalize()函數(shù)后面再深入學(xué)習(xí)

成員初始化

默認(rèn)初始化是類的數(shù)據(jù)成員摇幻。而方法的數(shù)據(jù)成員需要手動。
自動初始化在構(gòu)造器被調(diào)用前執(zhí)行挥萌。

初始化順序

變量定義的先后順序決定了初始化的順序囚企。即使變量定義散布于方法定義之間,他們?nèi)耘f會在任何地方(包括構(gòu)造器)被調(diào)用之前得到初始化瑞眼。

靜態(tài)數(shù)據(jù)的初始化

靜態(tài)初始化只有在必要時刻才會進(jìn)行龙宏。只有第一次訪問靜態(tài)數(shù)據(jù)是被初始化,此后伤疙,靜態(tài)對象不會再次被出書畫银酗。

總結(jié)對象的創(chuàng)建過程:

  1. 即使沒有顯示使用static關(guān)鍵字,構(gòu)造器實(shí)際上也是靜態(tài)方法徒像。當(dāng)首次創(chuàng)建類型為Dog的對象時黍特,或者Dog類的靜態(tài)方法/靜態(tài)域首次被訪問時,Java解釋器必須查找類途徑锯蛀,以定位Dog.class.
  2. 然后載入Dog.class, 有關(guān)所有靜態(tài)初始化的動作都會執(zhí)行灭衷。因此,靜態(tài)初始化只在class對象首次加載的時候進(jìn)行一次
  3. 當(dāng)用new Dog()創(chuàng)建對象的時候旁涤, 首先將在堆上為Dog對象分配足夠的存儲空間翔曲、
  4. 這塊存儲空間被清零。設(shè)置為默認(rèn)值0 or null
  5. 執(zhí)行所有出現(xiàn)于字段定義處的初始化動作
  6. 執(zhí)行構(gòu)造器

數(shù)組的初始化

  • 數(shù)組特殊的初始化是由一對花括號完成的劈愚,等價于new
int[] a1={1,2,3,4,5};
int[] a2=a1;//兩者指向同一片內(nèi)存空間
a1.length;//length是數(shù)組的固有成員
  • 直接用new在數(shù)組里創(chuàng)建元素
int[] a=new int[num];
int[] b;
b=new int[num];
  • 可以用花括號括起來的列表初始化對象數(shù)組
Integer[] a= {new Integer(1), new Integer(2), 3,};
Integer[] b=new Integer[]{new Integer(1), new Integer(2), 3,};
System.out.println(Arrays.toString(a));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞳遍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子菌羽,更是在濱河造成了極大的恐慌掠械,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異猾蒂,居然都是意外死亡均唉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門肚菠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浸卦,“玉大人,你說我怎么就攤上這事案糙。” “怎么了靴庆?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵时捌,是天一觀的道長。 經(jīng)常有香客問我炉抒,道長奢讨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任焰薄,我火速辦了婚禮拿诸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塞茅。我一直安慰自己亩码,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布野瘦。 她就那樣靜靜地躺著描沟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鞭光。 梳的紋絲不亂的頭發(fā)上吏廉,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音惰许,去河邊找鬼席覆。 笑死,一個胖子當(dāng)著我的面吹牛汹买,可吹牛的內(nèi)容都是我干的佩伤。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼晦毙,長吁一口氣:“原來是場噩夢啊……” “哼畦戒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起结序,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤障斋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垃环,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邀层,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了遂庄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寥院。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涛目,靈堂內(nèi)的尸體忽然破棺而出秸谢,到底是詐尸還是另有隱情,我是刑警寧澤霹肝,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布估蹄,位于F島的核電站,受9級特大地震影響沫换,放射性物質(zhì)發(fā)生泄漏臭蚁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一讯赏、第九天 我趴在偏房一處隱蔽的房頂上張望垮兑。 院中可真熱鬧,春花似錦漱挎、人聲如沸系枪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗤无。三九已至,卻和暖如春怜庸,著一層夾襖步出監(jiān)牢的瞬間当犯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工割疾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嚎卫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓宏榕,卻偏偏與公主長得像拓诸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子麻昼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 5.1 用構(gòu)造器確保初始化 注意變量聲明奠支、定義、賦值和初始化的區(qū)別:image.png 注意成員變量在類內(nèi)初始化和...
    大海孤了島閱讀 189評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法抚芦,類相關(guān)的語法倍谜,內(nèi)部類的語法迈螟,繼承相關(guān)的語法,異常的語法尔崔,線程的語...
    子非魚_t_閱讀 31,603評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理答毫,服務(wù)發(fā)現(xiàn),斷路器季春,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • 聽說會做飯的妹子最能抓住男人的心洗搂,而會做菜的男人簡直就是男神一般的存在,萬千妹子臣服于“身下”(此處應(yīng)打碼)载弄。說起...
    罐頭九九閱讀 631評論 1 2
  • 對于藥品耘拇、食品行業(yè)來說 商品效期管理是一項(xiàng)很重要的工作項(xiàng) 今天就跟大家分享效期商品是怎么管理的 每個商品都有一定使...
    藥品采購技能與excel技能閱讀 3,008評論 0 2