final修飾的變量有三種:靜態(tài)變量、實(shí)例變量和局部變量,分別表示三種類型的常量。 static表示“全局”或者“靜態(tài)”的意思,用來(lái)修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,但是Java語(yǔ)言中沒有全局變量的概念 一、final 和 staic 區(qū)別 成員變量 (能否修改值) final final成員變量表示常量,只能被賦值一次,賦值后不能再被改變 staic 被static修飾的成員變量獨(dú)立于該類的任何對(duì)象, static 修飾的變量可以被賦值多次 類 (類是否可以不用初始化就訪問(wèn)) final final類不能被繼承,沒有子類,final類中的方法默認(rèn)是 final 的 static static 類也不能被繼承,可以不用初始化而訪問(wèn) 方法 final final 方法不能被子類的方法重寫,但可以被繼承 final 不能用于修飾構(gòu)造方法 * :private 不能被子類方法覆蓋,private類型的方法默認(rèn)是final類型的 static static 方法可以被繼承,但是不能重寫 被static修飾的成員方法獨(dú)立于該類的任何對(duì)象, 不依賴類特定的實(shí)例,被類的所有實(shí)例共享。 只要這個(gè)類被加載,Java虛擬機(jī)就能根據(jù)類名在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。因此,static對(duì)象可以在它的任何對(duì)象創(chuàng)建之前訪問(wèn),無(wú)需引用任何對(duì)象。 static方法是不在對(duì)象上執(zhí)行的方法,不需要類的實(shí)例化,可以直接通過(guò)類調(diào)用。 二、final 和 static 一起用 修飾成員變量 static final用在變量上相當(dāng)于一個(gè)”全局變量“,一旦初始化后就不能被修改,并且可以通過(guò)類名調(diào)用,整個(gè)類共享一個(gè) 修飾類 表明方法不能被子類修改(可以被繼承被調(diào)用),并且可以通過(guò)類名調(diào)用 *: static final 與 final static相同 [1] https://www.cnblogs.com/ggzhangxiaochao/p/10640905.html [2] https://blog.csdn.net/azwhjp/article/details/107506156 靜態(tài)屬性、靜態(tài)方法和非靜態(tài)的屬性都可以被繼承和隱藏而不能被重寫 |
|