1.同一個類能夠有多個構造函數,多個構造函數之間經過參數來區分。這是方法重載的一個實例。構造函數之間能夠相互調用。java
2.類的初始化塊:能夠在類中使用「{」和「}」將語句包圍起來,直接將其做爲類的成員。類的這種「沒有名字」的「成員」,多用於初始化類的字段。函數
以下:this
public class Test{ public int value =200; { value=100; } }
3.若是一個類中既有初始化塊,又有構造方法,同時還設定了字段的初始值,誰說了算?
blog
package ppt_test; public class test2 { public int filed=100; { filed=200; } public test2(int value) { this.filed=value; } public test2(){ } public static void main(String args[]) { test2 obj=new test2(); System.out.println(obj.filed); test2 obj2=new test2(300); System.out.println(obj2.filed); } }
這是輸出結果,爲何呢?下面是類字段的初始化順序class
1.執行類成員定義時指定的默認值或類的初始化塊,到底執行哪個要看哪個「排在前面」。
2. 執行類的構造函數。test