KSCOLD LogoKSCOLD
Blog
Feed
Product
Admin Night
Vault
Guestbook
Info

Vault 목록

접근제어자(Access modifier)

연결된 노트와 함께 읽기

접근제어자(Access modifier)

2024년 3월 8일
  • 접근제어자는 클래스(Class)의 멤버 변수(Member Variable)와 메서드(Method)들의 접근 권한을 지정한다.

  • 접근제어자의 종류는 4가지로 public, protected, default, private이며,  접근 허용 가능 범위 순서 또한 아래와 같이 나타낼 수 있다.

public > protected > default > private

아래의 표로 접근 권한 범위를 자세하게 확인할 수 있습니다.(허용 : O, 제한 : X)

접근자클래스 내부패키지상속받은 클래스 자식 클래스(sub class)이외의 영역
privateOXXX
defaultOOXX
protectedOOOX
publicOOOO
  • public : 접근 제한이 없다.
  • protected : 동일한 패키지(package 형식 파일) 내에 존재하거나, 파생 클래스에서만 접근이 가능하다.
  • default : 아무런 접근 제한자를 명시하지 않으면 default 값이 되며, 동일한 패키지 내에서만 접근이 가능하다.
  • private : 자기 자신의 클래스 내에서만 접근이 가능하다.

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

애플리케이션이 커진다는 것은,  그만큼 문제점이 생길 확률도 커진다는 말이 된다. 특히 로직이 망가지는 첫 번째 원인은 사용자라고 할 수 있다.  즉, 객체(Object)를 사용하는 입장에서 객체 내부적으로 사용하는 변수나 메소드에 접근함으로써 개발자가 의도하지 못한 오동작을 일으키기도 한다.

이러한 문제로부터 객체의 로직을 보호하기 위해서는 멤버에 따라서 외부의 접근을 허용하거나 차단해야 할 필요가 생긴다.

마치 은행이 누구나 접근할 수 있는 창구와 관계자 외에는 출입이 엄격하게 통제되는 금고를 구분하고 있는 이유와 같다.

접근제어자를 사용하는 또 다른 이유는 사용자에게 객체를 조작할 수 있는 수단만을 제공함으로써 결과적으로 객체의 사용에 집중할 수 있도록 돕기 위함이다.

즉, 의도치 않은 실수를 줄이기 위함과 정보 은닉(캡슐화(encapsulation))의 목적으로 사용할 수 있다.

Synapse Map Insight