**類別檔案未重新編譯**,或 **執行環境載入舊版 .class 檔**。程式碼中已正確定義:
public Person(String n, String a, char s, int ag) { ... }
但執行時 JVM 找不到此簽章的建構子。
public class Person {
private String name, addr;
private char sex;
private int age;
// 全參建構子
public Person(String name, String addr, char sex, int age) {
this.name = name; this.addr = addr; this.sex = sex; this.age = age;
}
// 兩參建構子
public Person(String name, String addr) {
this(name, addr, 'U', 0); // 連呼全參
}
// 無參建構子
public Person() { this("", "", 'U', 0); }
// Getter/Setter 省略...
public void print() {
System.out.printf("Name:%s Addr:%s Sex:%c Age:%d%n", name, addr, sex, age);
}
}
**建議**:建構子間用 `this(...)` 串聯,減少重複賦值邏輯。