我有两个关于以下代码的问题.1.如何在不使用setter的情况下构造第三个构造函数?2. this()在最后一个构造函数中做了什么.
public class Person {
private String name;
private String address;
Person(){}
Person(String name){
this.name = name;
}
Person(String address){
//Person(java.lang.String) is already defined.
}
Person(String name,String address){
this();
this.name = name;
this.address = address;
}
}
我的问题解决方案是Person(对象地址){this.address =(String)address; 但是,我不确定这一点.
我认为这(); 在最后一个构造函数中调用构造函数Person(){},但如果确实如此,是否意味着当我调用时会创建两个Person对象
Person p = new Person("myName","myAddress");
谢谢!!!
And*_*ite 10
这个问题Person(String name)和Person(String address)是,你不能有两个构造函数使用相同的参数.当你想调用这样的东西时,编译器不会知道要调用哪一个: new Person("Joe Blow");
你可以这样做:
Person(String name)
{
this.name = name;
}
Person(String name, String address)
{
this(name);
this.address = address;
}
Run Code Online (Sandbox Code Playgroud)
this()最后一个构造函数中的" "只是告诉构造函数在构造对象的过程中调用默认构造函数.它不会创建两个对象,它只是在def中运行代码.构造函数,在您的情况下,什么都不做.
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |