728x90
참고 교재 : "자바의 신"
Java 접근 제어자 종류
public | 누구나 접근할 수 있도록 할 때 사용한다. |
protected | 같은 패키지 내에 있거나 상속받은 경우에만 접근할 수 있다. |
package-private (default) | 아무런 접근 제어자를 적어주지 않을 때이며, package-private라고도 불린다. 같은 패키지 내에 있을 때에만 접근할 수 있다. |
private | 해당 클래스 내에서만 접근 가능하다. |
□ Src 폴더
└■ javapackage 패키지
└ ⊙ AccessModifier.java
└■ javapackage.sub 패키지
└ ⊙ AccessCall.java
src 폴더 안에 2개의 패키지를 만들어 주었다.
다른 패키지에 있는 클래스의 메서드를 호출해보자.
먼저 javapackage 패키지에 AccessModifier 클래스를 정의해보자.
public class AccessModifier {
public void publicMethod() {
}
protected void protectedMethod() {
}
void packagePrivateMethod() {
}
private void privateMethod() {
}
}
이제 Javapackage.sub 패키지에 AccessCall 이름의 클래스를 정의하고
javapackage에 있는 클래스의 메서드를 호출해보자.
결과는?
접근 제어자가 public인 publicMethod()만 호출이 가능하고
나머지는 호출이 불가능 하다.
다시 정리해보면,
해당 클래스 안에서 | 같은 패키지에서 | 상속 받은 클래스에서 | import한 클래스에서 | |
public | O | O | O | O |
protected | O | O | O | X |
package private | O | O | X | X |
private | O | X | X | X |
메서드나 변수가 어디에서 사용될 것인지를 고려하여 접근 제어자를 지정해야만 한다.
이 접근 제어자는 지금 보기엔 별것 아닌 것처럼 느껴지긴 하겠지만, 실제로 매우 중요하다 .
(출처 자바의 신 235p)
728x90
'Programming > Java' 카테고리의 다른 글
[ Java ] - 난수 생성하기 (0) | 2020.09.22 |
---|---|
[ Java ] - 시간을 나타내기 (0) | 2020.09.22 |
[ Java ] - 단축키 모음. (0) | 2020.09.16 |
[Java] - overloading, 메서드 오버로딩 (1) | 2020.09.14 |
[java] - 기본 자료형의 default 값은? (0) | 2020.09.14 |
댓글