一个 java 文件可以有多个类吗?

2022-08-31 08:57:35

在 Java 文件中具有多个类的目的是什么?我是Java的新手。

编辑:这可以通过在公共类中创建一个内部类来实现,对吧?


答案 1

是的,可以。但是,每个文件只能有一个公共顶级类,并且公共顶级类必须与源文件具有相同的名称。.java

在一个源文件中包含多个类的目的是将相关的支持功能(内部数据结构,支持类等)与主公共类捆绑在一起。请注意,不这样做总是可以的 - 唯一的影响是代码的可读性(或不可读性)。


答案 2

如果要实现公共类,则必须在与该类同名的文件中实现它。单个文件可以包含一个公共类和一些私有类(可选)。如果类仅由公共类在内部使用,这将非常有用。此外,公共类还可以包含内部类。

尽管在单个源文件中具有一个或多个私有类是可以的,但我想说的是,使用内部类和匿名类更具可读性。例如,可以使用匿名类在公共类中定义比较器类:

  public static Comparator MyComparator = new Comparator() {
    public int compare(Object obj, Object anotherObj) {

    }
  };

比较器类通常需要一个单独的文件才能公开。这样,它就与使用它的类捆绑在一起。