欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java中的對(duì)象構(gòu)造與初始化順序-創(chuàng)新互聯(lián)

參考文獻(xiàn):

創(chuàng)新互聯(lián)建站是專業(yè)的淄博網(wǎng)站建設(shè)公司,淄博接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行淄博網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

Java核心技術(shù)卷一
Java程序的初始化順序
Java 代碼塊和類的執(zhí)行調(diào)用順序
類的加載與初始化

域初始化

如果在構(gòu)造器中沒(méi)有顯式地給域賦予初值,那么就會(huì)被自動(dòng)地賦為默認(rèn)值: 數(shù)值為 0、
布爾值為 false、 對(duì)象引用為 null。

也可以直接在實(shí)例域中設(shè)置一個(gè)有意義的初值,在執(zhí)行構(gòu)造器之前,先執(zhí)行賦值操作,將所有類對(duì)象的該域設(shè)置為一樣的值。比如:

class Employee
{private String name ="JXZ";
}
構(gòu)造器

如果在編寫(xiě)一個(gè)類時(shí)沒(méi)有編寫(xiě)構(gòu)造器, 那么系統(tǒng)就會(huì)提供一個(gè)無(wú)參數(shù)構(gòu)造器。這個(gè)構(gòu)造
器將所有的實(shí)例域設(shè)置為默認(rèn)值。

僅當(dāng)類沒(méi)有提供任何構(gòu)造器的時(shí)候, 系統(tǒng)才會(huì)提供一個(gè)默認(rèn)的構(gòu)造器。如果類中提供了至少一個(gè)構(gòu)造器, 但是沒(méi)有提供無(wú)參數(shù)的構(gòu)造器, 則在構(gòu)造對(duì)象時(shí)如果沒(méi)有提供參數(shù)就會(huì)被視為不合法。比如在編寫(xiě)類的時(shí)候,已經(jīng)給出了一個(gè)簡(jiǎn)單的構(gòu)造器,但是想用new ClassName()構(gòu)造實(shí)例,就必須提供一個(gè)默認(rèn)的構(gòu)造器(即不帶參數(shù)的構(gòu)造器),如果希望所有域被賦予默認(rèn)值, 可以采用下列格式:

public ClassName(){}

關(guān)鍵字 this 代表引用方法的隱式參數(shù)。但其還有一層用法,如果構(gòu)造器的第一條語(yǔ)句形如this(...)(如果這樣使用,也只能放在第一條語(yǔ)句), 這個(gè)構(gòu)造器將調(diào)用同一個(gè)類的另一個(gè)構(gòu)造器。比如:

public Employee(double s)
{// 這里就會(huì)調(diào)用Employee(String, double)
this("Employee #" + nextld, s);
nextld++;
}
初始化塊

在一個(gè)類的聲明中,可以包含多個(gè)代碼塊,只要構(gòu)造類的對(duì)象(實(shí)例化),這些塊就會(huì)被執(zhí)行,在下面有個(gè)例子中可以看到,裝載類但沒(méi)有實(shí)例化類的時(shí)候,這些普通代碼塊并沒(méi)有被執(zhí)行,與之相對(duì)的是靜態(tài)代碼塊執(zhí)行了。

class Employee
{private static int nextld;
	private int id;
	private String name;
	private double salary;
	
	// object initialization block
	{id = nextld;
	nextld++;
	}
}

《Java核心技術(shù)卷一》中對(duì)調(diào)用構(gòu)造器的相關(guān)步驟總結(jié)如下:

  1. 所有數(shù)據(jù)域被初始化為默認(rèn)值(0、false 或 null)
  2. 按照在類聲明中出現(xiàn)的次序, 依次執(zhí)行所有域初始化語(yǔ)句和初始化塊
  3. 如果構(gòu)造器第一行調(diào)用了第二個(gè)構(gòu)造器,則執(zhí)行第二個(gè)構(gòu)造器主體
  4. 執(zhí)行這個(gè)構(gòu)造器的主體
Java程序的初始化順序

在加入父子類以及靜態(tài)代碼塊后,初始化順序就復(fù)雜一點(diǎn)了,參考Java程序的初始化順序總結(jié)如下:

靜態(tài)優(yōu)于非靜態(tài),先父后子,域聲明優(yōu)于塊,最后構(gòu)造器

  1. 父類靜態(tài)變量
  2. 父類靜態(tài)代碼塊
  3. 子類靜態(tài)變量
  4. 子類靜態(tài)代碼塊
  5. 父類非靜態(tài)變量
  6. 父類非靜態(tài)代碼塊
  7. 父類構(gòu)造函數(shù)
  8. 子類非靜態(tài)變量
  9. 子類非靜態(tài)代碼塊
  10. 子類構(gòu)造函數(shù)

實(shí)例代碼:

public class InitOrderDemo {public InitOrderDemo() {System.out.println("父類構(gòu)造方法");
    }

    String b = "父類非靜態(tài)變量";

    {System.out.println(b);
        System.out.println("父類非靜態(tài)代碼塊");
    }

    static String a = "父類靜態(tài)變量";

    static {System.out.println(a);
        System.out.println("父類靜態(tài)代碼塊");
    }

    public static void superMethod() {System.out.println("父類普通靜態(tài)方法");
    }
}
public class Derived extends InitOrderDemo {public Derived() {System.out.println("子類構(gòu)造方法");
    }

    String b = "子類非靜態(tài)變量";

    {System.out.println(b);
        System.out.println("子類非靜態(tài)代碼塊");
    }

    static String a = "子類靜態(tài)變量";

    static {System.out.println(a);
        System.out.println("子類靜態(tài)代碼塊");
    }

    public static void derivedMethod() {System.out.println("子類普通靜態(tài)方法");
    }

    public static void main(String[] args) {//        InitOrderDemo.superMethod();
        Derived.derivedMethod();
//        new Derived();
    }
}

執(zhí)行輸出如下:

InitOrderDemo.superMethod()
父類靜態(tài)變量
父類靜態(tài)代碼塊
子類靜態(tài)變量
子類靜態(tài)代碼塊
父類普通靜態(tài)方法

Derived.derivedMethod():
父類靜態(tài)變量
父類靜態(tài)代碼塊
子類靜態(tài)變量
子類靜態(tài)代碼塊
子類普通靜態(tài)方法

new Derived():
父類靜態(tài)變量
父類靜態(tài)代碼塊
子類靜態(tài)變量
子類靜態(tài)代碼塊
父類非靜態(tài)變量
父類非靜態(tài)代碼塊
父類構(gòu)造方法
子類非靜態(tài)變量
子類非靜態(tài)代碼塊
子類構(gòu)造方法

其中InitOrderDemo.superMethod()Derived.derivedMethod()的打印只打印出了靜態(tài)變量和靜態(tài)代碼塊,和裝載時(shí)域的初始化有關(guān)。參考類的加載與初始化

同時(shí)參考代碼塊的兩個(gè)注意事項(xiàng):

  1. static代碼塊即靜態(tài)代碼塊,隨著類的加載而執(zhí)行,是對(duì)類進(jìn)行初始化,且只會(huì)執(zhí)行一次,當(dāng)之后再創(chuàng)建對(duì)象時(shí),靜態(tài)代碼塊不會(huì)再執(zhí)行。普通代碼塊每創(chuàng)建一次對(duì)象便會(huì)執(zhí)行一次。
  2. 普通代碼塊,在創(chuàng)建對(duì)象實(shí)例時(shí),會(huì)被默認(rèn)調(diào)用,每當(dāng)創(chuàng)建一次,便會(huì)調(diào)用一次。如果只是使用類的靜態(tài)成員時(shí),普通代碼塊不會(huì)被調(diào)用執(zhí)行。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前標(biāo)題:Java中的對(duì)象構(gòu)造與初始化順序-創(chuàng)新互聯(lián)
文章來(lái)源:http://aaarwkj.com/article8/ccohip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、域名注冊(cè)、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站面包屑導(dǎo)航、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
97资源在线中文一区| 另类视频在线观看免费| 国产自产一区二区三区精品| av蜜臀一区二区三区| 亚洲二区中文字幕在线观看| 欧美劲爆三级免费观看| 亚洲av一区二区三区网站| 日韩不卡的在线视频| 国产av一区二区三区中文| 蜜臀av午夜福利在线| 亚洲av成人在线一区二区| 黄色大片免费在线观看| 五月激情开心久久婷婷| 最新人妻少妇精品中文字幕视频| 日韩国产欧美色资源在线| 日韩精品国产自拍在线| 亚洲午夜精品一区二区久久| 人人妻人人澡人人爱| 亚洲高清有码在线观看| 亚洲精品入口一区二区| 日韩欧美精品另类在线| 情侣自拍偷拍亚洲天堂区| 91精品国产91久久综合桃花| 插入内射视频在线观看| 日韩精品国产一区二区在线观看| 国产老太婆精品久久久久| 高清大片免费看一区二区| 亚洲国产精品伦理在线看| av基地蜜桃蜜桃蜜桃| 日韩国产欧美色资源在线| 亚洲天堂成人av蜜臀| 日本道欧美一区二区aaaa| 中文字幕乱码人妻一二三| 成人欧美一区二区三区av| 日本加勒比系列在线视频| 中文字幕日韩欧美第一页| 国产成人亚洲精品在线看| 亚洲国产精品福利在线| 欧美日韩三级性生活水平| 一区二区高清免费日本| 丰满人妻被黑人猛烈进入免费 |