topic난이도 · 약 15

접근 제어자

public > protected > default > private 순으로 공개 범위가 좁아진다.

#Java#캡슐화
왜 배우는가

캡슐화의 실제 구현 수단. 실기에서 '다음 중 같은 패키지 안에서만 접근 가능한 제어자는?' 같은 단답형이 반복 출제된다.

접근 제어자는 를 구현하는 도구다. 필드를 `private`으로 숨기고, 필요한 부분만 `public` 메서드로 노출하는 것이 표준 패턴이다.

제어자같은 클래스같은 패키지자식 클래스전체
publicOOOO
protectedOOOX
default (생략)OOXX
privateOXXX

암기법: `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` 멤버는 다른 패키지의 자식 클래스에서 접근할 수 있다.