java中的多構造函數以及類字段的初始化順序

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

相關文章
相關標籤/搜索