접근 제어자(Access Modifier)는 클래스, 메소드, 변수 등에 대한 접근 범위를 지정해주는 키워드입니다. 이 접근 범위를 설정함으로써 외부에서의 접근을 제한하거나, 특정 클래스와 메소드 간의 관계를 명확하게 정의할 수 있습니다.
public class PublicExample {
public String name = "Public Example";
public void showName() {
System.out.println(name);
}
}
class Parent {
protected String data = "Protected Data";
protected void showData() {
System.out.println(data);
}
}
class Child extends Parent {
public void accessData() {
showData(); // 상속받은 클래스에서 접근 가능
}
}
class DefaultExample {
String defaultMessage = "Default Access Modifier"; // default 접근 제어자
void showMessage() {
System.out.println(defaultMessage);
}
}
public class PrivateExample {
private String secret = "Private Secret"; // 클래스 내부에서만 접근 가능
public void showSecret() {
System.out.println(secret);
}
}
접근 제어자는 객체 지향 프로그래밍에서 중요한 역할을 합니다. 접근 범위를 적절히 설정함으로써 코드의 재사용성과 유지보수성을 높일 수 있습니다. public은 모든 클래스에서 접근 가능하게 하며, private은 외부 클래스에서 접근하지 못하게 해 보안성과 캡슐화를 보장합니다. protected는 상속 관계에서 유용하게 쓰일 수 있으며, default는 패키지 범위에서 유효한 제한자입니다.
일반적으로 명시적인 표현을 선호하므로 default 제어자는 잘 쓰이지 않고, 필요한 접근 범위에 따라 적절한 제어자를 사용하는 것이 중요합니다.