在一个类里是不是一定存在一个不带任何参数的构造函数???
如果一个类中没有定义任何的构造方法, 虚拟机会自动分配一个无参的构造方法, 里面没有任何的代码
但凡在类中定义了一个构造方法,虚拟机就不自动分配了, 习惯性地,我们会再自定义一个无参的,避免出错
不带参数的构造函数是不是为了类的初始化而存在的?
是的,因为构造函数的本质就是为了类的初始化!
还有为什么一个类里会重载好多个带有不同参数的构造函数???
关于这方面我个人的理解是:为了能更方便的为类类型变量里的成员变量赋值,同时能更好的简化代码
看下面例子就知道了:
public class Demo {
public static void main(String[] args) {
//无参构造函数
Person p = new Person();
p.setAge(10);
p.setName("zhangsan");
System.out.println(p.getAge()+"..."+p.getName());
//有参构造函数
Person1 p1 = new Person(10,"zhangsan");
System.out.println(p1.getAge()+"..."+p1.getName());
}
}
class Person {
private int age;
private String name;
Person(){
};
Person(int age,String name){
this.age = age;
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
class Person1 {
Person1(int age,String name){
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
} |