嗨,大家好我需要一些帮助,以了解更好的构造函数和方法。为什么java的先调用第一个构造函数,而不是默认?:为什么java在这种情况下先调用NOT default构造函数?
public class Human {
private String name;
private int age;
public Human() {
this("Alex", 25);
System.out.println("Default constructor called");
}
public Human(String name, int age) {
this.name = name;
this.age = age;
System.out.println("First constructor called");
}
public Human(String name) {
this.name = name;
System.out.println("Second constructor called");
}
public String info(){
return name+" "+age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
} }
和
package com.company;
public class Main {
public static void main(String[] args) {
System.out.println("Create object 1");
Human person = new Human();
System.out.println(person.info());
System.out.println("Create object 2");
Human person2 = new Human("Mike",55);
System.out.println(person2.info());
}
}
所以输出是:
Create object 1
First constructor called
Default constructor called
Alex 25
Create object 2
First constructor called
Mike 55
它** **不叫“默认”构造 - 不然怎么解释中的'默认的构造called'你的输出? –
@OliverCharlesworth OP问为什么默认的构造函数被称为第二 – niceman
好吧,我明白,我有“这个”,但为什么输出字符串“System.out.println(”默认构造函数调用“);”是第二个? – Ess