[Java] 접근 지정자
2021. 11. 19. 15:34ㆍLanguage`/Java
패키지
- 서로 관련 있는 클래스 파일들을 패키지(Package)에 저장하여 관리
- 패키지 ≒ 디렉토리/폴더
4가지 접근 지정자
- private / protected / public / defaule(접근 지정자 생략)
클래스 접근 지정
public 클래스
- 패키지에 상관없이 다른 어떤 클래스에게도 사용이 허용 -> 모두 허용
public class World{
....
}
default 클래스 (접근 지정자 생략)
- 같은 패키지 내의 클래스들에게만 사용이 허용
class Local{
....
}
멤버 접근 지정
- 공개 범위(오름차순) : private -> default -> protected -> public
멤버에 접근하는 클래스 | 멤버의 접근 지정자 | |||
private | default | protected | public | |
같은 패키지의 클래스 | X | O | O | O |
다른 패키지의 클래스 | X | X | X | O |
접근 가능 영역 | 클래스 내 | 동일 패키지 내 | 동일 패키지 + (다른 패키지에 있는데) 자식 클래스 |
모든 클래스 |
private 멤버
- 비공개 -> 클래스 내의 멤버들에게만 접근 허용
default 멤버
- 동일 패키지 내에 있는 클래스들만 default 멤버에 접근
protected 멤버
- 보호된 공개 -> 같은 패키지의 모든 클래스에 접근 허용 + 다른 패키지인데 자식 클래스의 경우 접근 허용
- 상속(Inheritance)과 관련
public 멤버
- 모든 패키지의 모든 클래스 접근 허용