摘要:父類,子類子類方法三者中有同名變量時(shí),調(diào)用子類方法輸出,輸出,為子類方法中的值,表示子類中的值,表示父類中的值。靜態(tài)代碼塊構(gòu)造代碼塊構(gòu)造方法靜態(tài)代碼塊構(gòu)造代碼塊構(gòu)造方法父類和子類都有靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法,初始化子類對(duì)象。
package cat1; class fu{ public int num=10; public fu() { System.out.println("fu"); } } class zi extends fu{ public int num=20; public zi() { System.out.println("zi"); } public void show() { int num=30; System.out.println(num); System.out.println(this.num); System.out.println(super.num); } } public class test{ public static void main(String [] args) { zi z=new zi(); z.show(); } }
父類,子類 子類方法三者中有同名變量num時(shí),調(diào)用子類方法輸出,num輸出30,為子類方法中的值,this.num表示子類中的值,super.num表示父類中的值。
2
class Fu { static { System.out.println("靜態(tài)代碼塊Fu"); } { System.out.println("構(gòu)造代碼塊Fu"); } public Fu() { System.out.println("構(gòu)造方法Fu"); } } class Zi extends Fu { static { System.out.println("靜態(tài)代碼塊Zi"); } { System.out.println("構(gòu)造代碼塊Zi"); } public Zi() { System.out.println("構(gòu)造方法Zi"); } } public class test {public static void main(String []args) {Zi z = new Zi(); } }
父類和子類都有靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法,初始化子類對(duì)象。此時(shí):
1.jvm調(diào)用了main方法,main進(jìn)棧;
2.遇到Zi z=new zi(); 會(huì)將fu.class和zi.class 分別加進(jìn)內(nèi)存,再創(chuàng)建對(duì)象;
3.父類的靜態(tài)代碼塊會(huì)隨著fu.class一起加載,當(dāng)zi.class進(jìn)內(nèi)存,子類當(dāng)靜態(tài)
代碼塊也會(huì)隨著一起進(jìn)去;
所以先輸出靜態(tài)代碼塊fu再輸出靜態(tài)代碼塊zi
4.走子類構(gòu)造方法,先初始化父類,而父類有構(gòu)造代碼塊
綜上,順序?yàn)? 1父類靜態(tài)代碼塊2子類靜態(tài)代碼塊3父類構(gòu)造代碼塊4父類構(gòu)造方法
5子類構(gòu)造代碼塊6子類構(gòu)造方法
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77283.html
摘要:對(duì)象的引用關(guān)鍵字總是指向調(diào)用該方法的對(duì)象。根據(jù)出現(xiàn)位置的不同,作為對(duì)象的默認(rèn)引用有兩種情形。構(gòu)造器中引用該構(gòu)造器正在初始化的對(duì)象。如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名相同,但形參列表不同,則被稱為方法重載。 類和對(duì)象 定義類 面向?qū)ο蟮某绦蛟O(shè)計(jì)過(guò)程中有兩個(gè)重要概念:類(class)和對(duì)象(object,也被稱為實(shí)例,instance),其中類是某一批對(duì)象的抽象,可以把類理解成...
摘要:如果同一個(gè)線程再次請(qǐng)求該鎖,計(jì)數(shù)器會(huì)遞增,每次占有的線程退出同步代碼塊時(shí)計(jì)數(shù)器會(huì)遞減,直至減為時(shí)鎖才會(huì)被釋放。表示或在該上的所有線程的個(gè)數(shù)用來(lái)實(shí)現(xiàn)重入鎖的計(jì)數(shù)。只有兩種可能的值表示沒(méi)有需要喚醒的線程表示要喚醒一個(gè)繼任線程來(lái)競(jìng)爭(zhēng)鎖。 一、synchronized 1.類型 (1)對(duì)象鎖 對(duì)象鎖是作用在實(shí)例方法或者一個(gè)對(duì)象實(shí)例上面的 一個(gè)類可以有多個(gè)實(shí)例對(duì)象,因此一個(gè)類的對(duì)象鎖可能會(huì)有多個(gè)...
摘要:也就是說(shuō),一個(gè)實(shí)例變量,在的對(duì)象初始化過(guò)程中,最多可以被初始化次。當(dāng)所有必要的類都已經(jīng)裝載結(jié)束,開(kāi)始執(zhí)行方法體,并用創(chuàng)建對(duì)象。對(duì)子類成員數(shù)據(jù)按照它們聲明的順序初始化,執(zhí)行子類構(gòu)造函數(shù)的其余部分。 類的拷貝和構(gòu)造 C++是默認(rèn)具有拷貝語(yǔ)義的,對(duì)于沒(méi)有拷貝運(yùn)算符和拷貝構(gòu)造函數(shù)的類,可以直接進(jìn)行二進(jìn)制拷貝,但是Java并不天生支持深拷貝,它的拷貝只是拷貝在堆上的地址,不同的變量引用的是堆上的...
摘要:對(duì)子類成員數(shù)據(jù)按照它們聲明的順序初始化,執(zhí)行子類構(gòu)造函數(shù)的其余部分。參考類的初始化順序引了大半類加載的時(shí)機(jī) jvm系列 垃圾回收基礎(chǔ) JVM的編譯策略 GC的三大基礎(chǔ)算法 GC的三大高級(jí)算法 GC策略的評(píng)價(jià)指標(biāo) JVM信息查看 GC通用日志解讀 jvm的card table數(shù)據(jù)結(jié)構(gòu) Java類初始化順序 Java對(duì)象結(jié)構(gòu)及大小計(jì)算 Java的類加載機(jī)制 Java對(duì)象分配簡(jiǎn)要流程 年老...
摘要:八種基本數(shù)據(jù)類型數(shù)組定義數(shù)組元素類型數(shù)組名元素類型元素個(gè)數(shù)和數(shù)組長(zhǎng)度元素類型數(shù)組名元素類型元素元素元素元素內(nèi)存的劃分寄存器本地方法區(qū)方法區(qū)棧內(nèi)存存儲(chǔ)局部變量變量所屬作用域一旦結(jié)束變量自動(dòng)釋放方法進(jìn)棧局部變量屬于方法所以方法要先進(jìn)棧堆內(nèi)存存儲(chǔ) 八種基本數(shù)據(jù)類型 byte short int long boolean char float double JAVA數(shù)組 定義數(shù)組 元...
閱讀 3221·2021-09-30 09:48
閱讀 3497·2021-09-22 16:00
閱讀 1071·2019-08-30 13:08
閱讀 3110·2019-08-30 10:53
閱讀 2422·2019-08-29 18:33
閱讀 1596·2019-08-29 12:47
閱讀 904·2019-08-29 12:16
閱讀 1935·2019-08-26 12:02