JAVA/JAVA 수업
[JAVA] 접근제어자
샛별KIM
2021. 6. 3. 16:17
클래스 내부 | 동일 패키지 | 하위 클래스 | 그 외 | |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
public > protected > default(package) > private
public : 패키지 제한 없이 모든 접근을 허용. 어떤 클래스가 접근하든 다 open
protected : 상속 받은 클래스 자식, 인터페이스, 또는 같은 패키지 내에서만 접근 가능
default : 아무런 접근 제한을 두지 않을 때 = 비어있다면
기본 제어자, 아무것도 붙지 않은 것.
클래스가 같은 패키지 내에 있어야 접근 가능
private : 외부에서 접근 불가능, 같은 클래스 내에서만 접근 가능
📍주의 : 클래스 앞에 붙는 접근제어자는 public, default만 있다!!
번외 : 클래스를 만들 때 어떤 클래스에 public을 붙여야 함?
왜 파일 이름과 public 클래스 명을 맞춰야 할까?
가독성? 자바 파일 안에 많은 클래스를 정의할 때
하나의 대표 클래스를 지정하고 파일명과 동일하게
맞추는 것이 가독성에 도움이 됩니다.
사람이 소스 코드를 읽을 때 public 키워드가 붙은 클래스를 본다면
현 소스가 어떤 자바 파일 이름으로 되어있는지 알 수 있습니다.
= public이 없는 것은 자바 파일명과 동일한 class가 아니다.