Java에서 제어자라는 개념이 있다. 클래스나 변수, 메서드 앞에 붙는 친구들이다. 제어자는 크게 두 가지로 분류한다.
접근 제어자는 한 번에 네 가지 중 하나만 선택해서 사용할 수 있다.
public | protected | default | private | |
---|---|---|---|---|
같은 패키지, 같은 클래스 | ✅ | ✅ | ✅ | ✅ |
같은 패키지, 상속 관계 | ✅ | ✅ | ✅ | ❌ |
같은 패키지, 상속 관계 X | ✅ | ✅ | ✅ | ❌ |
다른 패키지, 상속 관계 | ✅ | ✅ | ❌ | ❌ |
다른 패키지, 상속 관계 X | ✅ | ❌ | ❌ | ❌ |
접근 제어자는 객체 지향에서 캡슐화한 정보를 제어하기 위하여 사용하는 것이다.
정말 언제 어디서든 누구나 다 썼으면 좋겠다 ->
public
쓸 것이면 상속해서 가져다 써줬으면 좋겠다 ->protected
이 패키지에서만 쓰는데 패키지 안 어디서든 편하게 쓰고 싶다 ->default
정보 은닉 ->private
https://velog.io/@kongsub/Modifier
https://opentutorials.org/course/1223/6061
https://blog.uniony.me/java/object-terms/ - 그림 출처
https://blog.itcode.dev/posts/2021/08/08/encapulation