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가 아니다.