📌 접근 지정자
- 객체를 캡슐화하기 때문에, 객체에 다른 객체가 접근하는 것을 허용할지, 말지를 지정한다.
📌 클래스 접근 지정
🌈 public
- 패키지에 상관없이 어떤 클래스에게도 사용이 허용된다.
💡 패키지(package)
자바는 서로 관련 있는 클래스 파일들을 패키지에 저장하여 관리한다.
🌈 디폴트 클래스(접근 지정자 생략)
- 같은 패키지 내의 클래스들에게만 사용이 허용된다.
📌 멤버 접근 지정
🌈 public
- 패키지를 막론하고 모든 클래스들이 접근 가능하다.
🌈 protected
- 같은 패키지의 모든 클래스들이 접근 가능하다.
- 다른 패키지더라도 자식 클래스의 경우 접근 가능하다.
🌈 디폴트 멤버(default 또는 package-private)(접근 지정자 생략)
- 동일한 패키지 내의 클래스들만 접근 가능하다.
🌈 private
📌 상속 접근 지정
🌈 public
- 패키지를 막론하고 모든 클래스들이 접근 가능하다.
🌈 protected
- 같은 패키지의 모든 클래스들이 접근 가능하다.
- 다른 패키지더라도 상속받는 서브 클래스의 경우 접근 가능하다.
🌈 디폴트 멤버(default 또는 package-private)(접근 지정자 생략)
- 동일한 패키지 내의 클래스들만 접근 가능하다.
- 서브 클래스라도 다른 패키지에 있다면, 슈퍼 클래스의 디폴트 멤버는 접근할 수 없다.
🌈 private
- 현재 클래스 내의 멤버들만 접근이 가능하다.
- 서브 클래스를 포함한 어느 클래스도 접근할 수 없다.