先看下面的代碼
<span style="font-size:18px;">public class Static {
public int a;
public String SS;
/* public Static(){
a=35;
}*/
public void Test(){
a=25;
}
public void Test02(){
SS="hello";
}
public void Test03(){
System.out.println(a);
}
public static void main(String[] args) {
Static st= new Static();
//st.Test();
st.Test03();
}
}</span>
輸出的結果是0;說明Test方法沒有執行所以纔有了st.Test03();輸出了0;先運行Test()方法則將把25賦值給a了.之後在運行Test03則輸出25,
而在構造方法中賦值的時候是在創建對象的時候就先運行了所以會出現下面的樣子
<span style="font-size:18px;">public class Static {
public int a;
public String SS;
public Static(){
a=35;
}
public void Test(){
a=25;
}
public void Test02(){
SS="hello";
}
public void Test03(){
System.out.println(a);
}
public static void main(String[] args) {
Static st= new Static();
//st.Test();
st.Test03();
}
}
</span>
之所以寫這些也是我當時以爲在new一個對象的時候構造方法先執行,然後其他在順序執行,但是我今天發現原來不調用的話是不會執行的
今天的一些理解