首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java Person 類別建構子錯誤:The constructor Person(String, String, char, int) is undefined

     編輯:程式設計綜合問答

錯誤原因

**類別檔案未重新編譯**,或 **執行環境載入舊版 .class 檔**。程式碼中已正確定義:

public Person(String n, String a, char s, int ag) { ... }

但執行時 JVM 找不到此簽章的建構子。

解決步驟

  1. 全專案清理重建**:IDE 中 Clean → Build (Eclipse: Project → Clean;IntelliJ: Build → Rebuild Project)。
  2. 檢查輸出目錄**:確認 `bin/` 或 `target/classes/` 下有最新 `Person.class` (時間戳、大小)。
  3. 刪除舊 .class 手動重編**:刪除 `Person.class` 再編譯。
  4. 確認檔案名稱**:`Person.java` → `public class Person`,**大小寫完全一致**。
  5. 單獨測試**:新建一個測試類別 `TestPerson.java` 只實例化 `new Person("A","B",'M',20)`,隔離干擾。

程式碼規範補充

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(...)` 串聯,減少重複賦值邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved