접근 제어자(Access Modifiers)란
자바에서 접근 제어자(Access Modifiers)는 클래스, 변수, 메소드 및 다른 멤버에 대한 액세스 권한을 제어하는 데 사용되는 키워드이다. 접근 제어자는 다른 클래스나 패키지에서 멤버에 접근하는 권한을 제한하고 코드의 캡슐화와 보안을 강화한다. 자바에서는 다음 네 가지 주요 접근 제어자를 제공한다.
public 접근 제어자는 가장 넓은 범위의 엑세스 권한을 제공한다. public으로 선언된 멤버는 어떤 클래스에서든 접근할 수 있다.
protected 접근 제어자는 상속 관계에 있는 클래스와 같은 패키지에 있는 클래스에서만 엑세스할 수 있도록 한다. 외부 패키지에 있는 클래스에서는 protected 멤버에 접근할 수 없다.
접근 제어자를 지정하지 않은 경우, 멤버는 기본 접근 제어자를 가진다. 이것은 같은 패키지에 있는 클래스에서만 접근할 수 있도록 한다. 외부 패키지의 클래스에서는 접근할 수 없다.
private 접근 제어자는 해당 멤버에 대한 가장 엄격한 제한을 적용한다. private으로 선언된 멤버는 동일한 클래스 내에서만 접근할 수 있다. 상속 관계에 있는 하위 클래스에서도 접근할 수 없다.
public class MyClass {
public int publicVariable; // 어디서든 접근 가능
protected int protectedVariable; // 같은 패키지와 하위 클래스에서 접근 가능
int defaultVariable; // 같은 패키지에서만 접근 가능 (package-private)
private int privateVariable; // 같은 클래스에서만 접근 가능
}
또한, 접근 제어자는 메소드와 클래스에도 적용된다. 클래스에 대한 접근 제어자는 클래스의 외부에서 클래스를 인스턴스화 하거나 상속받을 수 있는지를 결정하며, 메소드에 대한 접근 제어자는 메소드의 호출 권한을 제어한다.