1️⃣ 변경자란?

클래스, 필드, 메소드에 대한 접근 제어를 설정하는 키워드

→ 즉 누가 접근할 수 있는가를 결정하는 기능

주요 변경자 종류

변경자 접근 범위 설명
default 같은 패키지 내부에서만 변경자 생략 시 자동 적용
public 어디서든 접근 가능 가장 개방됨
private 같은 클래스 내부에서만 가장 제한적
protected 같은 패키지 + 상속 관계 클래스에서 접근 가능 상속 시 유용

2️⃣ default 변경자

아무 변경자도 적지 않으면 default

→ 같은 패키지 내에서만 접근 허용

class MyBike {  // default 클래스
    int size;   // default 필드
}


3️⃣ public 변경자

패키지 외부에서도 접근 가능

→ 개방 범위가 넓기 때문에 캡슐화 영향 고려 필요

public class MyBike {
    public int size;
    public int getSize() { return size; }
}


4️⃣ private 변경자

클래스 내부에서만 접근 가능

정보 은닉(Encapsulation) 을 실현

public class MyBike {
    private int size;
    private String name;

    public int getSize() { return size; }
    public void setSize(int size) { this.size = size; }
}

📌 실무 규칙