1. 접근 제어자(Access Modifier)
교재 p.163-168 / 4.4 접근 제어
1️⃣ 접근 제어자란?
클래스 / 변수 / 메서드에 어디까지 접근을 허용할지 정하는 키워드
2️⃣ 접근 제어자의 종류
접근 제어자 | 키워드 |
public | public |
protected | protected |
default | (아무것도 안 씀) |
private | private |
1) private
같은 클래스 안에서만 접근 가능
class User {
private String password;
private void changePassword() {
// 내부에서만 사용
}
}- 캡슐화 핵심
- 외부 접근 완전 차단
- 필드에 가장 많이 사용
2) default (package-private)
같은 패키지에서만 접근 가능
class User {
String name;// default
}- 접근 제어자 안 쓰면 자동 적용
- 패키지 단위 묶을 때 사용
3) public
어디서든 접근 가능
public class Main {
public static void main(String[] args) {}
}- API, 라이브러리 공개용
- 최소한으로 쓰는 게 좋음
3️⃣ 접근 범위
접근 가능 범위 | private | default | protected | public |
같은 클래스 | ⭕ | ⭕ | ⭕ | ⭕ |
같은 패키지 | ❌ | ⭕ | ⭕ | ⭕ |
다른 패키지 자식 클래스 | ❌ | ❌ | ⭕ | ⭕ |
다른 패키지 일반 클래스 | ❌ | ❌ | ❌ | ⭕ |
➡️ 왼쪽(←)으로 갈수록 더 제한적
Share article