類的使用方式

2022-07-06 16:45:10 字數 1441 閱讀 7649

類的初始化:jvm只會在 「首次主動使用」 乙個類/介面時,才會初始化它們。

通過 new 構造類的例項

package init;

class test

}public class run

}

static **塊會在類初始化時自動載入,如果以上**輸出了test1 static ...說明test1類被初始化了。

以上** new 了兩次test1物件,但是只列印了一次,因為只有在首次使用時,才會初始化該類。

訪問類/介面的靜態成員(屬性,方法)

package init;

class test

static int i = 10;

static void testmethod() }

public class run

}

特殊情況

反射使用的類

package init;

class test

}public class run

}

初始化乙個子類時,該子類的父類也會被初始化
package init;

public class father

}

package init;

public class son extends father

}

package init;

public class run

}

結果:

father static .....

son static ......

動態語言

動態語言在執行過程中所涉及的類,也會被初始化(動態**)

除了主動使用以外,其他都是被動使用

package init;

class test

}public class test4

}

通過陣列定義引用類,為類的被動使用,不會觸發該類的初始化。

為什麼呼叫靜態常量不會初始化類

class test 

}/**

* run的常量池中儲存了test中產生的常量[i = 10]

*/public class run

}

通過檢視 run 類的 class 檔案後發現,輸入語句直接輸出了10,與 test 中的 10 沒有任何關係。

public class run 

public static void main(string args)

}

列舉類相關使用方式

先定義乙個列舉類 getter public enum consumptionenums 獲取列舉類的列舉物件 valus 方法獲取列舉類的所有列舉物件,返回陣列 consumptionenums values consumptionenums.values 必要時可以轉成list集合 list c...

python使用List和類的方式構建樹和二叉樹

使用list構建樹 g g h h i i k k e e g,h,i,k d d f f a a d,e b b c c f root root a,b,c print root class btree 二叉樹節點 def init self,value 初始化函式 self.left none ...

類成員的保護方式

定義類,就是將該類的字段 屬性 事件 方法 類中的函式和過程 封裝在類的內部。這些字段 屬性 事件 方法就是類的成員。就物件而言,也是物件的資料和成員。類成員的保護模式也就是類成員訪問時的可見性,對於這些資料和成員的訪問,有以下四種保護 訪問 模式,分別使用下列關鍵字 1 private 私有的 在...