构造方法
所有JAVA类中都至少存在一个构造方法
如果一个类中没有明确编写构造方法,编译器会自动生成一个无参的构造方法(构造方法中没有任何代码)
注:如果自行编写任意一个构造器,则编译器不会自动生成无参构造方法
构造方法设计:建议自定义无参构造方法,不要对编译器形成依赖
当类中有非成员变量时,提供两个版本的构造方法,一个是无参构造方法,一个是全属性的构造方法。
当类中所有成员变量都是常量,建议不提供任何版本的构造方法。
为什么要提供无参构造方法?
在Java程序编写中,子类的构造方法必定会调用父类的构造方法,如果在子类的构造方法中没有指定调用父类的哪个构造方法,在实例化子类对象时,子类会默认调用父类的无参构造方法。如果在父类中没有定义无参构造方法的话,编译会报错。
例如:
class Personal {
String name;
int age;
double weight;
// 只定义全参的构造方法
public Personal(String name,int age,double weight){
this.name = name;
this.age = age;
this.weight = weight;
}
}
// 定义Personl2类,继承自Personal类
class Personal2 extends Personal {
public Personal2() {
}
}
此时编译器报错: