[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

참고