public class Person{
private String name;
private int age;
public Person(){}
public Person(String name){
this.name=name;
}
public Person(int age){
this.age=age;
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void display(){
System.out.println("Name:"+name+"\tAge:"+age);
}
public static void main(String[] args){
Person p1=new Person("Tom");
p1.display();
p1=new Person(30);
p1.display();
p1=new Person("Billy",33);
p1.display();
}
}
运行结果为什么是:
Name:Tom Age:0
Name:null Age:30
Name:Billy Age:33
而不是:
Name:Tom Age:0
Name:Tom Age:30
Name:Billy Age:33
怎样调用构造函数会更好些?
先谢谢大家了!!!
private String name;
private int age;
public Person(){}
public Person(String name){
this.name=name;
}
public Person(int age){
this.age=age;
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void display(){
System.out.println("Name:"+name+"\tAge:"+age);
}
public static void main(String[] args){
Person p1=new Person("Tom");
p1.display();
p1=new Person(30);
p1.display();
p1=new Person("Billy",33);
p1.display();
}
}
运行结果为什么是:
Name:Tom Age:0
Name:null Age:30
Name:Billy Age:33
而不是:
Name:Tom Age:0
Name:Tom Age:30
Name:Billy Age:33
怎样调用构造函数会更好些?
先谢谢大家了!!!
p1.display(); // Name:Tom Age:0
p1.setAge(30);
p1.display(); //Name:Tom Age:30
2、而如果是值类型:double,int,long,float,char等等,他们都是:0;
运行结果为什么是:
Name:Tom Age:0
调用public Person(String name){
this.name=name;
}这个构造方法,只传1个参数,另一个参数 age默认值为0,Name:null Age:30
调用public Person(int age){
this.age=age;
} 这个构造方法,只传1个参数,另一个参数默认值为nullName:Billy Age:33
调用public Person(String name,int age){
this.name=name;
this.age=age;
}这个构造方法,2个参数都传入
Person p1=new Person("Tom");
p1.display();
p1=new Person(30);
p1.display();
p1=new Person("Billy",33);
p1.display();
把p1=new Person(30); 改为p1=new Person(("Tom",30); 即可。原因从这里你就可以体会一下