類的初始化

2021-10-20 05:49:21 字數 2466 閱讀 1081

package 類的初始化;

/** * 父類的初始化* (1)j = method(); 5

* (2)父類的靜態**塊 1

* * 父類的例項初始化:

* (1) super() (最前)

* (2) i = test();

* (3)父類的非靜態**塊

* (4)父類的無參構造 (最後)

* * 非靜態方法前面其實有乙個預設的物件this

* this在構造器(或))它表示的是正在建立的物件

* 因為這裡是在建立son物件,所以test()執行的是子類重寫的**(物件導向多型)

*/public

class

father

father()

public

inttest()

public

static

intmethod()

}

package 類的初始化;

/** * 類初始化過程:

* * ① 乙個類要建立例項需要先載入並初始化該類

* main方法所在的類需要先載入和初始化

* 當main方法中沒有建立例項時,執行結果:5 1 10 6

* * ② 乙個子類要初始化需要先初始化父類

* * ③ 乙個類初始化就是執行()方法

* ()方法由靜態類變數顯示賦值**和靜態**塊組成

* 類變數顯示賦值**和靜態**塊**從上到下順序執行

* ()方法只執行一次

* * 子類的初始化:

* (1)j = method(); 10

* (2〉子類的靜態**塊 6

* * 例項初始化過程:

* ① 例項初始化就是執行()方法

* ()方法可能過載有多個,有幾個構造器就有幾個方法

* ()方法由非靜態例項變數顯示賦值**和非靜態**塊、對應構造器**組成

* 非靜態例項變數顯示賦值**和非靜態**塊**從上到下順序執行,而對應構造器的**最後執行

* 每次建立例項物件,呼叫對應構造器,執行的就是對應的方法

* 方法的首行是super()或super(實參列表),即對應父類的方法

* * 子類的例項初始化:

* (1) super() (最前) 相當於去呼叫父類的例項初始化

* (2) i = test();

* (3)子類的非靜態**塊

* (4)子類的無參構造 (最後)

* * 哪些方法不可以被重寫:

* final方法

* 靜態方法

* private等子類中不可見方法

*/public

class

sonextends

father

son(

)@override

public

inttest()

public

static

intmethod()

public

static

void

main

(string[

] args)

}

結果:5 1 10 6 9 3 2 9 8 7

9 3 2 9 8 7

靜態**塊是定義在成員位置,使用static修飾的**塊。

特點:構造**塊是定義在類中成員位置的**塊

特點:區域性**塊是定義在方法語句中**

特點:

package

static的用法;

class

abstatic

//靜態塊。在class資訊載入到jvm時執行1次。

publicab(

)}public

class 執行順序

}

package 面試;

class

apublica(

)}class

bextends

apublicb(

)}public

class

static關鍵字

}

執行結果:1a2b2b。建立物件時構造器的呼叫順序是:先初始化靜態成員,然後呼叫父類構造器,再初始化非靜態成員,最後呼叫自身構造器。

類的初始化

類的初始化通產有3種型別 使用初始化列表,在建構函式體中賦值,以及使用預設建構函式。先說前兩種 初始化列表與在建構函式體中賦值的區別在 呢?主要有兩點 第一,有的成員不能使用函式體中的 初始化。這其實就是初始化與賦值的區別 比如比如const 成員,引用型別,以及沒有定義預設建構函式的類,它們都必須...

類的初始化

類的初始化通產有3種型別 使用初始化列表,在建構函式體中賦值,以及使用預設建構函式。先說前兩種 初始化列表與在建構函式體中賦值的區別在 呢?主要有兩點 第一,有的成員不能使用函式體中的 初始化。這其實就是初始化與賦值的區別 比如比如const 成員,引用型別,以及沒有定義預設建構函式的類,它們都必須...

類的初始化

類的使用順序 類的裝載 鏈結 驗證 準備 解析 初始化 物件例項化 class t implements cloneable static 構造方法是個例項化方法,在 t 被例項化時呼叫 public t string str public static int print string str p...