자바 - 접근제어자 public, private, protected 및 default
자바에서 접근제어자(access modifier)는 클래스와 클래스의 멤버(필드, 메소드, 생성자)를 사용할 때, 접근할 수 있는 범위를 지정해 주는 역할을 합니다. 보통 접근제어자 또는 접근지정자라고 부르며 클래스나 클래스 멤버 앞에 붙어있는 public, private, protected 등의 키워드가 바로 접근제어자(접근지정자)입니다.
📌 제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여해 줍니다.public
, protected
, default
, private
static
, final
, abstract
❗️ 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근 제어자는 단 하나만 사용할 수 있습니다.
📌 멤버 또는 클래스에 사용, 외부에서 접근하지 못하도록 제한합니다.public
: 접근 제한이 전혀 없습니다.protected
: 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능합니다default
: 같은 패키지 내에서만 접근이 가능합니다.private
: 같은 클래스 내에서만 접근이 가능합니다.공개범위는 public > protected > default(생략) > private 순으로 좁아집니다.
-> 그렇다면, 왜 권한을 나눠서 설정하는 걸까요?
바로 외부에서 확인을 못하게 설정하고 싶은 경우 변수를 private로 설정해서
외부에서 접근하지 못하도록 설정할 수 있습니다. 이를 통해서 정보 은닉
(impormation hiding)이 가능해집니다.