日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java的3个初始化_通过实例解析Java类初始化和实例初始化

發(fā)布時(shí)間:2024/1/23 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的3个初始化_通过实例解析Java类初始化和实例初始化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、背景:

存在類Father和類Son,其中類Son繼承了Father類。

1.父類Father代碼

2.子類Son代碼

*初始化包括?

成員變量賦初值、代碼塊、構(gòu)造器

注意方法是被調(diào)用的,有人調(diào)用它它才執(zhí)行相應(yīng)的東西。

二、類初始化

在一開始,注釋掉main方法中的代碼,執(zhí)行結(jié)果如下。

類初始化:

1.創(chuàng)建實(shí)例需要先加載并初始化該類

此處main方法所在的類需要先加載并初始化

2.子類初始化要先初始化其父類

3.類初始化即是執(zhí)行clinit(ClassInit)方法

A.(靜態(tài)!)分為 靜態(tài)變量的顯式賦值操作 和 靜態(tài)代碼塊

B.上到下的順序執(zhí)行

C.這個(gè)clinit方法只執(zhí)行一次

將父類中的static代碼塊放到靜態(tài)變量之前,可以看到結(jié)果按順序改變。

三、實(shí)例初始化

取消Son類中main方法的第一句注釋,如下圖所示。

此時(shí)將會(huì)先進(jìn)行類初始化,再進(jìn)行實(shí)例初始化,結(jié)果如下。

實(shí)例初始化:

1.實(shí)例初始化即是執(zhí)行init方法

2.有幾個(gè)構(gòu)造器就有幾個(gè)init方法,每次創(chuàng)建對象都會(huì)執(zhí)行相應(yīng)的init方法。

3.init方法由非靜態(tài)實(shí)例變量顯式賦值、非靜態(tài)代碼塊和相應(yīng)的構(gòu)造器組成。

4.非靜態(tài)實(shí)例變量賦值與非靜態(tài)代碼塊按上到下的順序執(zhí)行,構(gòu)造器在最后執(zhí)行。

5.init方法的首行是super()或者帶參數(shù)的super(),即父類init方法。

父類中的test()方法輸出的是(4),為何父類中結(jié)果為932?

非靜態(tài)方法前有一個(gè)默認(rèn)的對象this

this在構(gòu)造器(或者init方法)表示的是正在創(chuàng)建的對象。

這里是在創(chuàng)建Son類的對象,所以執(zhí)行的是重寫后的代碼。

四、總結(jié)

初始化操作包括成員變量、靜態(tài)/非靜態(tài)代碼塊和構(gòu)造器。

1.先類初始化,再實(shí)例初始化。

2.都是先父類再子類。

3.類初始化關(guān)鍵詞"靜態(tài)"。

4.實(shí)例初始化關(guān)鍵詞"非靜態(tài)",構(gòu)造器在最后。

5.注意構(gòu)造器和實(shí)例初始化init方法中的this對象。

五、補(bǔ)充

哪些方法不能被重寫?

final方法

靜態(tài)方法

private等子類中不可見方法

多態(tài)性的體現(xiàn)?

子類若重寫了父類的方法,則通過子類對象調(diào)用的一定是子類重寫過的方法

非靜態(tài)方法默認(rèn)的調(diào)用對象是this

this對象在構(gòu)造器或者init方法中就是正在創(chuàng)建的對象

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

總結(jié)

以上是生活随笔為你收集整理的java的3个初始化_通过实例解析Java类初始化和实例初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。