topic★★★★★난이도 · 약 15분
접근 제어자
public > protected > default > private 순으로 공개 범위가 좁아진다.
#Java#캡슐화
왜 배우는가
캡슐화의 실제 구현 수단. 실기에서 '다음 중 같은 패키지 안에서만 접근 가능한 제어자는?' 같은 단답형이 반복 출제된다.
접근 제어자는 를 구현하는 도구다. 필드를 `private`으로 숨기고, 필요한 부분만 `public` 메서드로 노출하는 것이 표준 패턴이다.
| 제어자 | 같은 클래스 | 같은 패키지 | 자식 클래스 | 전체 |
|---|---|---|---|---|
| public | O | O | O | O |
| protected | O | O | O | X |
| default (생략) | O | O | X | X |
| private | O | X | X | X |
암기법: `public`은 전부, `private`은 자기만, `protected`는 패키지 + 자식, `default`는 같은 패키지까지.
java
public class Account {
private int balance; // 외부 차단
public int getBalance() { // 읽기 전용 공개
return balance;
}
public void deposit(int amt) {
if (amt > 0) balance += amt;
}
}balance를 private로 막고 getter/setter만 public으로 노출하는 것이 캡슐화의 표준 패턴이다.
실기 드릴 2문항
edit실기 드릴 · 단답형
같은 패키지 내에서는 접근 가능하지만 다른 패키지의 자식 클래스에서는 접근할 수 없는 접근 제어자를 쓰시오.
check_circle실기 드릴 · OX
`protected` 멤버는 다른 패키지의 자식 클래스에서 접근할 수 있다.