在没有构造函数的情况下,java虚拟机会默认一个无参构造函数。如果定义了构造函数时,在实例化对象时只调用的就是你定义的这个构造函数。class One { private String msg; public One() { this.msg = ""; } public One(String msg) { this.msg = msg } public static void main(String args[]) { One object = new One(); One one = new One("hello"); } }这种情况下,你才能直接使用无参构造函数 class Two { private String msg; public Two(String msg) { this.msg = msg; } }这种情况只能使用定义好了的构造函数,无参构造函数没有被定义。
new User();这表示调用了User这个类的无参构造函数。 你在User()里只有有参构造函数,如果要调用无参构造函数,需要显示声明, 即在User这个类中写入 public User(){ //业务逻辑,可以为空 }
{
private String msg;
public One()
{
this.msg = "";
}
public One(String msg)
{
this.msg = msg
} public static void main(String args[])
{
One object = new One();
One one = new One("hello");
}
}这种情况下,你才能直接使用无参构造函数
class Two
{
private String msg;
public Two(String msg)
{
this.msg = msg;
}
}这种情况只能使用定义好了的构造函数,无参构造函数没有被定义。
你在User()里只有有参构造函数,如果要调用无参构造函数,需要显示声明,
即在User这个类中写入
public User(){
//业务逻辑,可以为空
}