[Java] 접근 제한자 (public, private, protected, default)
java

[Java] 접근 제한자 (public, private, protected, default)

접근 제한자

 

자바를 사용하면서 많이 접하게 되는 public, private, protected.

보통 public은 어디서든 접근 가능한 공용 접근자, private은 동일 클래스에서만 접근하는 느낌으로 생각을 했는데

protected나 default는 어떻게 쓰일까?

 

  • public : 모든 접근을 허용하는 접근 제한자. 어떤 클래스에서 접근을 해도 허용함.
  • protected : 상속 받은 클래스 혹은 같은 패키지 내에서 접근이 가능함.
  • default : 기본 접근 제한자로, 아무 것도 적지 않은 상태. 동일 클래스 내부와 동일 패키지에서만 접근이 가능함.
  • private : 외부에서는 접근이 불가능하며 같은 클래스 내에서만 접근 가능.

 

  클래스 내부 동일 패키지 하위 클래스 그 외 영역
public O O O O
protected O O O X
default O O X X
private O X X X