[Java] 접근제어자 public, protected, private
정리
접근 제어자 역할
- 캡슐화(encapsulation)와 정보 숨김(information hiding)을 구현하기 위해 쓰임
접근 제어자 종류
구분 | Modifier | 설명 |
---|---|---|
접근권한 | public | 모든 클래스에서 접근이 가능 |
protected | 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근 가능 | |
private | 클래스 내에서만 접근이 가능 |
접근 권한
종류 | 클래스 | 동일 패키지 | 하위 클래스 | 모든 클래스 |
---|---|---|---|---|
private | O | X | X | X |
(default) | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
- private
- 접근 권한 범위가 좋은 modifier
- 자기 자신 클래스 내에서만 이용할 수 있는 멤버를 선언할 때 사용
- (default)
- 접근 관련 modifier를 지정하지 않은 경우
- 동일 패키지에 속하는 클래스만 접근할 수 있는 멤버
- protected
- 동일 패키지와 동일 패키지에 포함되지는 않지만 하위 클래스 관계에 있는 클래스도 접근 가능
- public
- 모든 클래스에 의해 접근할 수 있다. 즉, 접근 제약이 없다.
접근 권한 범위 넓이 순서
- pulbic > protected > (default) > private