一个Java程序包含两个或多个类,在Java中有两种可能。
嵌套类
多个非嵌套类
在下面的示例中,java程序包含两个类,一个类名为Computer,另一个是Laptop。这两个类都有自己的构造函数和方法。在main方法中,我们可以创建两个类的对象并调用它们的方法。
public class Computer { Computer() { System.out.println("Computer类的构造函数。"); } 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("笔记本电脑类的构造函数。"); } void laptop_method() { System.out.println("99% Battery available."); } }
当我们编译上述程序时,将创建两个.class文件,分别是Computer.class和Laptop.class。这样的好处是我们可以在其他项目中的某个地方重用我们的.class文件,而无需再次编译代码。简而言之,创建的.class文件数将等于代码中的类数。我们可以根据需要创建任意多个类,但是不建议在一个文件中编写多个类,因为这样会使代码难以阅读,而我们可以为每个类创建一个文件。
输出结果
Computer类的构造函数。 笔记本电脑类的构造函数。 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 nhooo.com"); } }
在上面的程序中,我们有一个Main类,其中有四个内部类Test1,Test2,Anonymous内部类1和Anonymous内部类2。编译完此类后,它将生成以下类文件。
主类
Main $Test1.class
Main $Test2.class
Main $1.class
Main $2.class
输出结果
Welcome to nhooo.com