접근 제어자는 클래스 내부 구성요소(필드, 메서드 등)의 접근 범위를 설정하는 키워드이다.
자바에서는 총 4가지 접근 제어자를 제공한다.
publicprotected(default) ← 아무 제어자도 없는 경우private| 접근 제어자 | 같은 클래스 | 같은 패키지 | 상속 받은 다른 패키지 | 전체(외부 클래스) |
|---|---|---|---|---|
public | ✅ | ✅ | ✅ | ✅ |
protected | ✅ | ✅ | ✅ | ❌ |
| (default) | ✅ | ✅ | ❌ | ❌ |
private | ✅ | ❌ | ❌ | ❌ |
💡 참고: (default)는 접근 제어자를 명시하지 않은 상태를 의미
publicpublic class MyClass {
public void print() {
System.out.println("공개 메서드입니다.");
}
}
privatepublic class User {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
protectedclass Parent {
protected void hello() {
System.out.println("안녕!");
}
}
class Child extends Parent {
void say() {
hello(); // 접근 가능
}
}
(default: 아무 접근 제어자 없음)class DefaultClass {
void hello() {
System.out.println("default 접근입니다.");
}
}
publicprivateprotected(default)