```java
public class Hello{
public static void main(String[] args){
Person p =new Person("张三");
System.out.println(p.name);
}
}
class Person{
String name;
public Person(){
System.out.println("I am");
}
public Person(String name){
this();
this.name=name;
}
}
```想要达到的结果
无参构造器创建对象的时候就会调用一回,然后使用this()方法的时候应该再调用一回,但是输出时为什么只有一回"I am"?
你的public Person(String name)
是对无参构造函数的一个重载,你的new Person("张三")
会调用public Person(String name)
,构造函数只会执行你指定的那一个,不会都执行一遍。
因此你这里只会有一个"I am"输出。
不就this调用一回么,什么时候调用无参构造函数了?
new Person("张三"); 走的是 Person(String name) 这构造器 所以会调用this();打印("I am");
你纠结的是new Person("张三") 为什么不调用 Person() ;不会调用的