Java에서 최상위 클래스없이 최고 수준 클래스에 액세스
-
11-07-2019 - |
문제
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 패키지가 사용됩니다.
제휴하지 않습니다 StackOverflow