[Java] 접근 제한자(Access Modifier)

접근 제한자(Access Modifier)
캡슐화(Encapsulation)
- 필드와 메서드를 하나의 단위로 묶고, 외부로부터 데이터를 숨기며 안전하게 보호하는 것
- 정보 은닉 -> 내부 데이터를 외부에서 직접 접근하지 못하게 하고 특정 메서드를 통해서만 접근하도록 제한
접근제한자
- 클래스, 매서드, 변수 등에 대한 접근 범위를 지정
- 캡슐화와 정보은닉을 가능하게 함
- 접근 제한자는 하나만 작성이 가능
접근제한자의 종류
- public : 모든 위치에서 접근 가능
- protected : 같은 패키지 또는 패키지가 달라도 상속 관계에서 접근 가능
- default(package-private) : 같은 패키지 안에서만 접근 가능
- private : 같은클래스 내부에서만 접근 가능
| 수식어 (Modifier) | 클래스 내부 | 동일 패키지 | 하위 클래스 (타 패키지) | 다른 패키지 |
|---|
private | O | | | |
(default) | O | O | | |
protected | O | O | O | |
public | O | O | O | O |
접근자(Getter) / 설정자(Setter)
- 캡슐화를 구현하는데 사용되는 메서드
- Getter : private 필드 값을 외부에서 읽을 수 있게 함
- Setter : private 필드 값을 외부에서 수정할 수 있게 함
=> 직접 접근이 아닌 안전하게 읽고 쓴느 방식 제공
- 접두사 get / set을 이용하여 메서드 작성