클래스, 필드, 메소드에 대한 접근 제어를 설정하는 키워드
→ 즉 누가 접근할 수 있는가를 결정하는 기능
| 변경자 | 접근 범위 | 설명 |
|---|---|---|
| default | 같은 패키지 내부에서만 | 변경자 생략 시 자동 적용 |
| public | 어디서든 접근 가능 | 가장 개방됨 |
| private | 같은 클래스 내부에서만 | 가장 제한적 |
| protected | 같은 패키지 + 상속 관계 클래스에서 접근 가능 | 상속 시 유용 |
아무 변경자도 적지 않으면 default
→ 같은 패키지 내에서만 접근 허용
class MyBike { // default 클래스
int size; // default 필드
}
패키지 외부에서도 접근 가능
→ 개방 범위가 넓기 때문에 캡슐화 영향 고려 필요
public class MyBike {
public int size;
public int getSize() { return size; }
}
클래스 내부에서만 접근 가능
→ 정보 은닉(Encapsulation) 을 실현
public class MyBike {
private int size;
private String name;
public int getSize() { return size; }
public void setSize(int size) { this.size = size; }
}
📌 실무 규칙