접근 제한자
자바를 사용하면서 많이 접하게 되는 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 |