我们可以在单个 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

更新于: 2020年2月6日

15K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告