我們可以在單個 Java 程式中宣告多個類嗎?\n
單個 Java 程式包含兩個或多個類,在 Java 中可以透過兩種方式實現。
在單個 Java 程式中實現多個類的兩種方式
- 巢狀類
- 多個非巢狀類
編譯器如何處理多個非巢狀類
在下面的示例中,Java 程式包含兩個類,一個類名為 Computer,另一個類名為 Laptop。這兩個類都有自己的建構函式和方法。在 main 方法中,我們可以建立這兩個類的物件並呼叫它們的方法。
示例
public class Computer {
Computer() {
System.out.println("Constructor of Computer class.");
}
void computer_method() {
System.out.println("Power gone! Shut down your PC soon...");
}
public static void main(String[] args) {
Computer c = new Computer();
Laptop l = new Laptop();
c.computer_method();
l.laptop_method();
}
}
class Laptop {
Laptop() {
System.out.println("Constructor of Laptop class.");
}
void laptop_method() {
System.out.println("99% Battery available.");
}
}當我們編譯上述程式時,將建立兩個**.class 檔案**,分別是 Computer.class 和 Laptop.class。這具有以下優勢:我們可以在其他專案中的某個地方重用我們的 .class 檔案,而無需再次編譯程式碼。簡而言之,建立的 .class 檔案的數量將等於程式碼中類的數量。我們可以建立任意數量的類,但建議不要在一個檔案中編寫多個類,因為這會使程式碼難以閱讀,而是可以為每個類建立一個單獨的檔案。
輸出
Constructor of Computer class. Constructor of Laptop class. Power gone! Shut down your PC soon... 99% Battery available.
編譯器如何處理巢狀類
一旦編譯包含多個內部類的主類,編譯器將為每個內部類生成單獨的 .class 檔案。
示例
// Main class
public class Main {
class Test1 { // Inner class Test1
}
class Test2 { // Inner class Test2
}
public static void main(String [] args) {
new Object() { // Anonymous inner class 1
};
new Object() { // Anonymous inner class 2
};
System.out.println("Welcome to Tutorials Point");
}
}在上述程式中,我們有一個 Main 類,它有四個內部類:**Test1、Test2、匿名內部類 1** 和 **匿名內部類 2**。一旦我們編譯此類,它將生成以下類檔案。
Main.class
Main$Test1.class
Main$Test2.class
Main$1.class
Main$2.class
輸出
Welcome to Tutorials Point
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP