嗨,大家好我需要一些幫助,以瞭解更好的構造函數和方法。爲什麼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