본문 바로가기
JAVA

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

by 초이사 2023. 1. 16.

객체의다른 클래스의 접근 허용 범위를 제한하기 위해(중요한 필드나 메소드의 외부 노출을 막기 위해) 접근 제한자를 사용한다. 접근 제한자(Access Modifier)에는 public, protected, private가 있으며, default는 접근 제한자를 지정하지 않은 경우를 말한다.

 

 

접근 제한자 사용 대상

  • 클래스 : public, default
  • 필드 : public, protected, default, private (필드를 읽고 변경할 수 있는 범위)
  • 생성자 : public, protected, default, private (생성자 호출 가능 범위는 객체 생성 가능 범위를 의미)
  • 메소드 : public, protected, default, private (메소드 호출 가능 범위)

 

공개 범위는  private < default < protected < public 순으로 넓어진다.

접근 제한자 public protected default private
같은 패키지의 클래스 O O O X
다른 패키지의 클래스 O X X X
접근 제한 범위 모든 클래스 같은 패키지나
자식 클래스
같은 패키지 내 클래스 내

 

 

public

  • 모든 클래스에서 접근해서 사용할 수 있다.
  • 다른 패키지에서도 접근해서 사용할 수 있다.

protected

  • 같은 패키지내에 있거나 자식 클래스에서만 사용 가능하다.

default

  • 접근 제한자를 생략한 경우는 defalut 접근 제한이 된다. 
  • 같은 패키지내에서만 사용할 수 있다.
  • package-private라고도 한다.

private

  • 클래스 내에서만 사용할 수 있다. 같은 패키지라도 클래스를 벗어나면 사용할 수 없다.

 

 

 

댓글