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

접근 제어자는 객체 지향 프로그래밍에서 클래스의 멤버(필드, 메서드, 내부 클래스 등)에 대한 접근 범위를 지정하는 데 사용되는 키워드입니다. 이는 클래스의 캡슐화, 정보 은닉, 보안, 유지 관리 등의 측면에서 중요한 역할을 합니다.

 

public

  • 가장 넓은 범위의 접근 제어자로, 어떤 클래스에서든 해당 멤버에 접근할 수 있습니다.
  • 다른 패키지에서도 접근 가능합니다.

protected

  • 같은 패키지 내의 클래스와 해당 클래스를 상속한 클래스에서 접근할 수 있습니다.
  • 패키지가 다른 경우에도 상속 관계가 있다면 접근이 가능합니다.
  • 하위 클래스에서 오버라이딩할 때 유용하며, 외부에서의 접근을 제한하면서 상속을 통해 확장할 수 있습니다.

default

  • 접근 제어자를 명시하지 않은 경우, 같은 패키지 내에서만 접근할 수 있습니다.

private

  • 가장 제한적인 범위의 접근 제어자로, 선언된 클래스 내에서만 접근할 수 있습니다.
  • 클래스의 내부 구현을 숨기고 정보 은닉을 위해 사용됩니다.
  • 다른 클래스에서 직접 접근할 수 없으므로, 메서드를 통해 간접적으로 접근합니다.(get, set)

접근 제어자 표로 비교

  public protected default private
접근 범위 모든클래스 및 패키지에서 접근 가능 같은 패키지 및 하위 클래스에서 접근 가능 같은 패키지에서 접근 가능 해당 클래스 내에서만 접근