0

我有一个 Java 文件TestThis.java,如下所示:

class A
{
    public void foo() 
    {
        System.out.println("Executing foo");
    }
}

class B
{
    public void bar()
    {
        System.out.println("Executing bar");
    }
}

上面的代码文件编译良好,没有任何警告/错误。有什么方法可以访问任何课程AB没有任何其他外部课程的顶级课程?

如果不是,那么为什么 Java 甚至允许在没有顶级类的情况下编译此类文件?

4

2 回答 2

5

像往常一样(例如,从 Test.java 访问):

public class Test {
    public static void main(String... args) {
        A a = new A();
        a.foo();
        B b = new B();
        b.bar();
    }
}

The rule here is that you could not have more than one public class in the source file. If you have one, the filename must match this public class name. Otherwise (your case), you can name your file as you wish. Other, non-public classes, will be package-visible and you can access them as usual.

于 2008-11-28T05:55:29.100 回答
1

同一个包中的任何其他类都可以访问A和B;在这种情况下,将使用空包,因为源文件不存在包语句。

于 2008-11-28T05:54:32.630 回答