나는 나의 인증 시험을 위해 공부하고 있는데, 컴파일하고 실행하는이 예제를 실행한다. 그러나 문제는 내가 컴파일해야한다고 생각하지 않는다는 것이다. 왜냐하면이 메소드는 private이기 때문에 우리는 클래스의 인스턴스에서 private 메서드를 호출합니다. 누군가 그것이 왜 작동하는지 설명해 주시겠습니까?이 Java 코드가 컴파일되어 실행되는 이유는 무엇입니까? 나는 그것을 이해하지 못한다
public class Test {
public static void main(String[] args) {
Test instance = new Test();
System.out.println(instance.number());
}
/* protected */ private int number() {
try {
new RuntimeException();
} finally {
return 1;
}
}
}
그 방법은 '비공개'가 아닙니다. 바로 그곳이 '보호 받았다'고합니다. – awksp
첫 번째 메시지는 * protected *이며 개인 메시지는 아닙니다. 둘째 : 비록 그것이 개인적인 것이 라해도 당신은 여전히 정의 클래스의 어떤 메소드에서든지 접근 할 수 있습니다. private은 "class private"이 아닌 "private private"를 의미합니다. –
어쨌든 클래스에서 작업 중이므로 해당 메서드에 액세스 할 수 없습니다. – awksp