我有一个TestThis.java
像以下Java文件:
class A { public void foo() { System.out.println("Executing foo"); } } class B { public void bar() { System.out.println("Executing bar"); } }
上面的代码文件编译正常,没有任何警告/错误.有什么方法可以访问任何类A
或B
没有任何其他外部类的顶级类?
如果不是那么为什么Java甚至允许在没有顶级类的情况下编译这些文件呢?
像往常一样(例如,从Test.java访问):
public class Test { public static void main(String... args) { A a = new A(); a.foo(); B b = new B(); b.bar(); } }
这里的规则是源文件中不能有多个公共类.如果您有一个,则文件名必须与此公共类名称匹配.否则(您的情况),您可以根据需要命名您的文件.其他非公开类将是包可见的,您可以像往常一样访问它们.