본문 바로가기
Programming/Java

[ Java ] - 접근 제어자

by 구튼탁 2020. 9. 21.
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

댓글