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

Java public 類與檔案名不一致導致編譯錯誤

     編輯:程式設計疑難解答

錯誤現象

程式碼中定義了兩個 `public class`(`Daemon` 和 `Daemons`),編譯時報錯。錯誤截圖解析度過低無法看清具體訊息,但根據 Java 語言規範,最可能的原因是:**public 類的類名必須與源碼檔案名完全一致**,且一個源碼檔案**最多只能有一個** public 類。

程式碼片段

public class Daemon extends Thread { ... }
public class Daemons { ... }

解決方法

  1. 拆分檔案:將 `Daemon` 放在 `Daemon.java`,`Daemons` 放在 `Daemons.java`。
  2. 移除多餘的 public:若兩個類邏輯緊密且不想拆檔案,僅保留一個 `public class`(通常是包含 `main` 方法的那個),另一個改為 package-private(預設存取級別,不加 `public`)。

修正範例

// Daemon.java
public class Daemon extends Thread { ... }

// Daemons.java
public class Daemons {
    public static void main(String[] args) { ... }
}

或單檔案版:

class Daemon extends Thread { ... }  // 不加 public
public class Daemons { ... }         // 唯一的 public class,檔案名必須為 Daemons.java

補充說明

非 public 類(package-private)在同一包內仍可被自由存取,適合作為輔助類使用。這也是 Java 設計為「一檔一公共類」的初衷:讓編譯器能快速定位類定義,也強制模組化。

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