public class Ho{
public static String str="靜態成員變量";
public static String getStr(){
System.out.println("靜態方法");
return "返回的靜態方法";
}
{
System.out.println("非靜態初始化塊");
}
static
{
System.out.println("靜態初始化塊");
//str=getStr();
}
public Ho()
{
System.out.println("構造方法");
}
public static void main(String args[]){
//Ho a=new Ho();
//System.out.println(Ho.str);
}
}
創建對象實例後
java在首次裝入類時,會對靜態成員變量和靜態方法進行一次初始化,但方法不被調用則不會執行;
由此可知,java在加載類時順序
初始化靜態塊–>(實例化對象)–>
初始化非靜態塊–>構造函數
若爲子父類繼承關係且當主函數在子類當中
初始化父類靜態塊–>初始化子類靜態塊–>(實例化對象)–>
初始化父類非靜態塊–>父類構造方法–>
初始化子類非靜態塊–>子類構造函數