[Java] 접근 제어자 사용 - 클래스 레벨

코드 속의 "진돌"·2024년 2월 13일
0
post-thumbnail

✅ 클래스 레벨의 접근 제어자


📚 클래스 레벨의 접근 제어자 규칙

  • 클래스 레벨의 접근 제어자는 public, default만 사용할 수 있다.
    • private, protected는 사용할 수 없다.
  • public 클래스는 반드시 파일명과 이름이 같아야 한다.
    • 하나의 자바 파일에 public 클래스는 하나만 등장할 수 있다.
    • 하나의 자바 파일에 default 접근 제어자를 사용하는 클래스는 무한정 만들 수 있다.



✏️ PublicClass.java

package access.a;

public class PublicClass {

  public static void main(String[] args) {
    PublicClass publicClass = new PublicClass();
    DefaultClass1 class1 = new DefaultClass1();
    DefaultClass2 class2 = new DefaultClass2();
  }
}

class DefaultClass1 {

}

class DefaultClass2 {

}
  • 패키지 위치는 package access.a이다.
  • PublicClasspublic 접근 제어자이기 때문에 파일명과 이 클래스의 이름이 반드시 같아야 한다. 이 클래스는 외부에서 접근할 수 있다.
  • DefaultClass1, DefaultClass2default 접근 제어자이기 때문에 같은 패키지 내부에서만 접근할 수 있다.
  • PublicClassmain()을 보면 각각의 클래스를 사용하는 예를 보여준다.
    • PublicClasspublic 접근 제어이므로 어디서든 사용할 수 있다.
      DefaultClass1, DefaultClass2와는 같은 패키지에 있으므로 사용할 수 있다.



✏️ PublicClassInnerMain

package access.a;

public class PublicClassInnerMain {

  public static void main(String[] args) {
    PublicClass publicClass = new PublicClass();
    DefaultClass1 class1 = new DefaultClass1();
    DefaultClass2 class2 = new DefaultClass2();
  }
}
  • 패키지 위치는 package access.a이다.
  • PublicClasspublic 클래스이므로 외부에서 접근할 수 있다.
  • PublicClassInnerMainDefaultClass1, DefaultClass2는 같은 패키지이므로 접근 가능하다.



✏️ PublicClassOuterMain

package access.b;

// import access.a.DefaultClass1;
// import access.a.DefaultClass2;
import access.a.PublicClass;

public class PublicClassOuterMain {

  public static void main(String[] args) {
    PublicClass publicClass = new PublicClass();

    // 다른 패키지 접근 불가
    // DefaultClass1 class1 = new DefaultClass1();
    // DefaultClass2 class2 = new DefaultClass2();
  }
}
  • 패키지 위치는 package access.b이다.
  • PublicClasspublic 클래스이므로 외부에서 접근할 수 있다.
  • PublicClassOuterMainDefaultClass1, DefaultClass2다른 패키지이므로 접근할 수 없다.
profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글