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

相关文章
相关标签/搜索