
접근 제어자(Access Modifier)란
👉 클래스, 필드(변수), 메서드, 생성자에 대해
“어디까지 접근을 허용할지 범위를 정하는 키워드”이다.
- 접근 제어자는 클래스, 필드(변수), 메서드, 생성자에 적용할 수 있으며,
- 각 요소의 외부 접근 가능 범위를 제어해 객체의 구조와 데이터를 보호한다.
public — 완전 개방형어디서든 접근 가능
public int age;
👉 가장 넓은 접근 범위
protected — 조금 좁혀진 공개 범위protected int score;
default — 아무것도 안 쓰는 경우패키지 전용 접근
키워드가 없어서 “default 접근제어자”라고 부름
int level; // default
private — 가장 폐쇄적오직 같은 클래스 내부에서만 접근 가능
private String password;
getter / setter로 접근 조절👉 가장 좁은 접근 범위
| 제한자 | 접근 가능 범위 | 범위 크기 |
|---|---|---|
public | 어디서든 | ⭐⭐⭐⭐ (가장 넓음) |
protected | 동일 패키지 + 상속받은 클래스 | ⭐⭐⭐ |
default | 동일 패키지 | ⭐⭐ |
private | 동일 클래스 | ⭐ (가장 좁음) |
✅ private
→ 거의 모든 필드(속성)
→ 외부에서 막 써버리면 객체 무너짐
✅ public
→ 진짜 외부에 공개해야 할 메서드
✅ protected
→ 자식 클래스에 기능 열어주고 싶을 때
✅ default
→ 패키지 단위로 묶어서 관리할 때