자바에서 접근 제어자는 클래스, 메서드, 인스턴스 및 클래스 변수를 선언할 때 사용되는 것으로 외부에서 접근하지 못하도록 제한하는 역할을 한다. 이를 통해 정보 은닉을 실현할 수 있게 만들어주는 것으로 public, protected, 생략(default), private 총 4가지가 있다.
접근 제어자는 아래와 같이 public이 가장 많은 접근을 허용하고 private로 갈 수록 점진적으로 접근을 제한한다.
public > protected > default > private
public 접근 제어자가 붙은 변수나 메서드는 어떤 클래스에서도 접근이 가능하다.
protected 접근 제어자가 붙은 변수나 메서드는 동일 패키지의 클래스 또는 해당 클래스를 상속받는 클래스에서만 접근이 가능하다.
default는 package-private이라고도 불리며, 접근 제어자를 생략하게 되면 자동으로 default가 되고 생략한 변수나 메서드는 동일 패키지 안에서만 접근이 가능하다.
private 접근 제어자가 붙은 변수나 메서드는 해당 클래스 안에서만 접근이 가능하다.
💡
클래스의 접근 제어자 : public, default
메서드의 접근 제어자 : public, protected, default, private 모두 사용이 가능하다.