JavaSE 第二十四講 static 與 final 使用陷阱 10.11

26.final 類型成員變量賦初值方式
a).在聲明final類型的成員變量時(shí)賦初值
b).在聲明final類型的成員變量時(shí)不賦初值,但在類的所有構(gòu)造方法中都為其賦初值赌蔑。

public class FinalTest4
{
    final int a;//無(wú)法編譯缀旁。未賦初值鸳谜。    
}
public class FinalTest4
{
    final int a;//可編譯本刽。雖然聲明final類型的成員變量時(shí)未賦值挪蹭,但在類的構(gòu)造方法中賦值亭饵。注意:需要在類的所有構(gòu)造方法中為其賦初值。
    
    public FinalTest4()
    {
        a = 0;
    }
       
     public FinalTest4(int a)
    {
        this.a = a;
    }
}

27.static代碼塊:靜態(tài)代碼塊梁厉,也是完成一些初始化工作辜羊。
首先執(zhí)行靜態(tài)代碼塊,再執(zhí)行構(gòu)造方法:靜態(tài)代碼塊在類被加載時(shí)執(zhí)行,而構(gòu)造方法是在生成對(duì)象時(shí)執(zhí)行八秃。要想調(diào)用某個(gè)類來(lái)生成對(duì)象碱妆,首先需要將類加載到Java虛擬機(jī)上(JVM),然后由JVM加載這個(gè)類來(lái)生成對(duì)象昔驱。

28.類的靜態(tài)代碼塊只會(huì)執(zhí)行一次:在類被加載時(shí)執(zhí)行疹尾,而每個(gè)類只會(huì)被加載一次。
而構(gòu)造方法則不然:在每生成一個(gè)對(duì)象時(shí)都調(diào)用類的構(gòu)造方法骤肛,所有new一次就會(huì)調(diào)用一次構(gòu)造方法航棱。

public class StaticTest4
{
    public static void main(String[] args)
    {
        new S();//首先執(zhí)行靜態(tài)代碼塊,再執(zhí)行構(gòu)造方法萌衬。
        new S();//類的靜態(tài)代碼塊只會(huì)執(zhí)行一次饮醇,而構(gòu)造方法在每生成一個(gè)對(duì)象時(shí)都調(diào)用類的構(gòu)造方法。
    }
}

class P
{
    public P()
    {
        System.out.println("P constructor");
    }

    static
    {
        System.out.println("P static block");
    }
    
}

class Q extends P
{
    public Q()
    {
        System.out.println("Q constructor");
    }

    static
    {
        System.out.println("Q static block");
    }
}

class S extends Q
{
    public S()
    {
        System.out.println("S constructor");
    }

    static
    {
        System.out.println("S static block");
    }
}

29.不能在靜態(tài)方法中訪問(wèn)非靜態(tài)成員變量秕豫;可以在靜態(tài)方法中訪問(wèn)靜態(tài)的成員變量朴艰;可以在非靜態(tài)方法中訪問(wèn)靜態(tài)的成員變量。
總結(jié):靜態(tài)的可訪問(wèn)靜態(tài)的混移,非靜態(tài)的可訪問(wèn)一切祠墅。
不能在靜態(tài)方法中訪問(wèn)this關(guān)鍵字。

public class StaticTest5
{
    public static void main(String[] args)
    {
        W.change();
    }
}

class W
{
    int a = 10;
    public static void change()
    {
        a++;
    }
}
public class StaticTest5
{
    public static void main(String[] args)
    {
        W w = new W();

        W.change();
    }
}

class W
{
    static int a = 10;

    public static void change()
    {
        this.a++;//不能在靜態(tài)方法中使用this關(guān)鍵字歌径。
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毁嗦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子回铛,更是在濱河造成了極大的恐慌狗准,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茵肃,死亡現(xiàn)場(chǎng)離奇詭異腔长,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)验残,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門捞附,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人您没,你說(shuō)我怎么就攤上這事鸟召。” “怎么了氨鹏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵欧募,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我喻犁,道長(zhǎng)槽片,這世上最難降的妖魔是什么何缓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮还栓,結(jié)果婚禮上碌廓,老公的妹妹穿的比我還像新娘。我一直安慰自己剩盒,他們只是感情好谷婆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著辽聊,像睡著了一般纪挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跟匆,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天异袄,我揣著相機(jī)與錄音,去河邊找鬼玛臂。 笑死烤蜕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迹冤。 我是一名探鬼主播讽营,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼泡徙!你這毒婦竟也來(lái)了橱鹏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堪藐,失蹤者是張志新(化名)和其女友劉穎莉兰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體庶橱,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贮勃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苏章。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奏瞬,死狀恐怖枫绅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情硼端,我是刑警寧澤并淋,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站珍昨,受9級(jí)特大地震影響县耽,放射性物質(zhì)發(fā)生泄漏句喷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一兔毙、第九天 我趴在偏房一處隱蔽的房頂上張望唾琼。 院中可真熱鬧,春花似錦澎剥、人聲如沸锡溯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祭饭。三九已至,卻和暖如春叙量,著一層夾襖步出監(jiān)牢的瞬間倡蝙,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工绞佩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寺鸥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓征炼,卻偏偏與公主長(zhǎng)得像析既,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谆奥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 一:java概述:1眼坏,JDK:Java Development Kit,java的開(kāi)發(fā)和運(yùn)行環(huán)境酸些,java的開(kāi)發(fā)工...
    ZaneInTheSun閱讀 2,635評(píng)論 0 11
  • Advanced Language Features 知識(shí)點(diǎn):一. static修飾符 static修飾符可以用來(lái)...
    風(fēng)景涼閱讀 437評(píng)論 0 0
  • 1宰译、.java源文件: 一個(gè)以”.java“為后綴的源文件:只能有一個(gè)與文件名相同的類,可以包含其他類魄懂。 2沿侈、類方...
    Hughman閱讀 1,452評(píng)論 1 9
  • Java關(guān)鍵字final 在設(shè)計(jì)程序時(shí),出于效率或者設(shè)計(jì)的原因市栗,有時(shí)候希望某些數(shù)據(jù)是不可改變的缀拭。這時(shí)候可以使用fi...
    獅_子歌歌閱讀 738評(píng)論 1 4
  • 我把活著喜歡過(guò)了 先睡覺(jué)吧,小鳥(niǎo)們 我把活著喜歡過(guò)了 因?yàn)檫h(yuǎn)處有呼喚我的東西 我把悲傷喜歡過(guò)了 可以睡覺(jué)了喲 孩子...
    蘸月煮酒閱讀 603評(píng)論 0 0