Java Default 접근 제어자
Java Default 접근 제어자
Java Default 접근 제어자
- Java의 default 접근 제어자는 클래스 및 클래스 멤버에 대한 접근 제어를 명시하는 키워드
- default 접근 제어자는 동일한 패키지 내에 있는 다른 클래스만이 접근 가능하게 함
- 아무 접근 제어자를 붙이지 않는 경우 기본으로 적용됨
- private과 protected의 사이의 은닉 수준 제공
언제 사용하면 좋을까
- 한 패키지 내에 B라는 클래스가 A라는 클래스를 의존할 수 있음
- 이 때 B 클래스가 A 클래스의 멤버 변수 값이 필요할 수 있고, 이를 얻기 위해
getter
를 사용함 - 그러나 객체 지향 생활 체조 원칙 등에서는 정보 은닉을 보장하기 위해
getter
의 사용을 지양하라고 되어 있음 - 이런 상황에서
getter
를 쓰되, default 접근 제어자를 사용하는 절충안이 존재- 이 경우, 패키지 외부로 getter가 나가는 것이 아니므로, 정보 은닉을 해친다고 보기는 힘들다고 생각
- 물론 같은 패키지에서도 이 방식이 문제가 될 수 있으므로, 완벽한 정답은 아님. 상황에 따른 판단이 필요할 듯
References
- http://www.tcpschool.com/java/java_modifier_accessModifier
- 교육 바탕으로 생각 정리