본문 바로가기
JAVA

[JAVA] - 접근제어자란?

by nam_ji 2024. 1. 23.

접근제어자 개념 정리

접근제어자란

  • 접근제어자는 클래스의 멤버인 변수와 메소드들의 접근 권한을 지정합니다.
    종류는 4가지로 public, protected, default, private 이며,  접근 허용 가능 범위 순서 또한 아래와 같이 나타낼 수 있습니다.
    • public > protected > default > private
  • 접근제어자를 표를 이용하여 보기 쉽게 정리해 봤습니다. (허용 : O, 제한 : X)
    • 접근자 클래스 내부 패키지 상속받은 클래스 이외의 영역
      private O X X X
      default O O X X
      protected O O O X
      public O O O O
    • public : 접근 제한이 없습니다.
    • protected : 동일한 패키지 내에 존재하거나, 파생 클래스에서만 접근 가능합니다.
    • default : 아무런 접근 제어자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에서만 접근이 가능합니다.
    • private : 자기 자신의 클래스 내에서만 접근이 가능합니다.

접근제어자를 사용하는 이유

  • 애플리케이션이 커진다는 것은,  그만큼 문제점이 생길 확률도 커진다는 말이 됩니다. 특히 로직이 망가지는 첫 번째 원인은 사용자라고 할 수 있습니다. 즉, 객체를 사용하는 입장에서 객체 내부적으로 사용하는 변수나 메소드에 접근함으로써 개발자가 의도하지 못한 오동작을 일으키기도 합니다.
  • 이러한 문제로부터 객체의 로직을 보호하기 위해서멤버에 따라서 외부의 접근을 허용하거나 차단해야 할 필요가 생깁니다.
  • 마치 은행이 누구나 접근할 수 있는 창구와 관계자 외에는 출입이 엄격하게 통제되는 금고를 구분하고 있는 이유와 같습니다.
  • 접근제어자를 사용하는 또 다른 이유는 사용자에게 객체를 조작할 수 있는 수단만을 제공함으로써 결과적으로 객체의 사용에 집중할 수 있도록 돕기 위함입니다.
  • 즉, 의도치 않은 실수를 줄이기 위함과 정보 은닉의 목적으로 사용할 수 있습니다.

정보 은닉이란

  • 클래스 내부에서 사용할 변수나 메서드는 private으로 선언해서 외부에서 접근하지 못하도록 하는 것이다. 
  • 정보 은닉은 객체 지향 프로그래밍의 특징 중 하나다. 자바에서는 접근 제어자를 사용해서 정보 은닉을 구현한다. 

 

'JAVA' 카테고리의 다른 글

[JAVA] - Naming Convention  (1) 2024.01.27
[JAVA] - Static(정적)이란  (0) 2024.01.23
[JAVA] - 클래스란  (0) 2024.01.23
[JAVA] - 객체의 속성 : 필드  (0) 2024.01.12
[JAVA] - 객체 생성과 참조형 변수  (0) 2024.01.12