문제

Java 파일이 있습니다 TestThis.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();
    }
}

여기서 규칙은 소스 파일에 둘 이상의 공개 클래스를 가질 수 없다는 것입니다. 하나가 있다면 파일 이름은이 공개 클래스 이름과 일치해야합니다. 그렇지 않으면 (귀하의 경우), 원하는대로 파일을 지정할 수 있습니다. 기타 비공개 클래스는 패키지 가시 가능하며 평소와 같이 액세스 할 수 있습니다.

다른 팁

동일한 패키지의 다른 클래스는 A와 B에 액세스 할 수 있습니다. 이 경우 소스 파일에 대한 패키지 문이 없기 때문에 NULL 패키지가 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top