程式碼中定義了兩個 `public class`(`Daemon` 和 `Daemons`),編譯時報錯。錯誤截圖解析度過低無法看清具體訊息,但根據 Java 語言規範,最可能的原因是:**public 類的類名必須與源碼檔案名完全一致**,且一個源碼檔案**最多只能有一個** public 類。
public class Daemon extends Thread { ... }
public class Daemons { ... }
// 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 設計為「一檔一公共類」的初衷:讓編譯器能快速定位類定義,也強制模組化。