1.同一个类可以有多个构造函数,多个构造函数之间通过参数来区分。这是方法重载的一个实例。构造函数之间可以相互调用。
2.类的初始化块:可以在类中使用“{”和“}”将语句包围起来,直接将其作为类的成员。类的这种“没有名字”的“成员”,多用于初始化类的字段。
如下:
public class Test{
public int value =200;
{
value=100;
}
}
知识兔3.如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算?
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);
}
}
知识兔
这是输出结果,为什么呢?下面是类字段的初始化顺序
1.执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
2. 执行类的构造函数。