默认的构造函数是指当创建一个类(A)时,该类(A)里面没有写构造函数,这时java虚拟机会自动为该类创建一个默认无参的构造函数,而在实例化(A a = new A())该类时,调用的是虚拟机提供的构造函数。而当你该类(A)指定无参(A a = new A())或者有参(A a = new A( String name, String score))的构造函数时,java虚拟机就不会为该类创建一个无参的构造函数,而在实例化该类时,调用的是自己写的构造函数。举个例子:
public class Seller{
public static void maim(String[] args){
Student student = new Student();//这时调用的是 java虚拟机提供的无参的构造函数
/*
* 这时不是调用 java虚拟机提供的无参的构造函数,因为Student1类已经有构造函数了,所以这里调用的是自己写的一个没带参数的构造函数
*/
Student1 student1 = new Student1();
}
/**
*没有构造函数的类
*/
class Student {
private String name;
private String score;
public String getName(){
return name;
}
public void setName(){
this.name = name;
}
public String getScore(){
return score;
}
public void setScore(){
this.score = score;
}
}
/**
*有构造函数的类
*/
class Student1 {
private String name;
private String score;
public String getName(){
return name;
}
public void setName(){
this.name = name;
}
public String getScore(){
return score;
}
public void setScore(){
this.score = score;
}
public Student(){ System.out.println("自己写的构造函数");}
public Student(String name,String score){
this.name = name;
this.score = score;
}
}
}
希望对楼主有帮助
|