✅ 클래스 레벨의 접근 제어자
📚 클래스 레벨의 접근 제어자 규칙
- 클래스 레벨의 접근 제어자는
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이다.
PublicClass는 public 접근 제어자이기 때문에 파일명과 이 클래스의 이름이 반드시 같아야 한다. 이 클래스는 외부에서 접근할 수 있다.
DefaultClass1, DefaultClass2는 default 접근 제어자이기 때문에 같은 패키지 내부에서만 접근할 수 있다.
PublicClass의 main()을 보면 각각의 클래스를 사용하는 예를 보여준다.
PublicClass는 public 접근 제어이므로 어디서든 사용할 수 있다.
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이다.
PublicClass는 public 클래스이므로 외부에서 접근할 수 있다.
PublicClassInnerMain과 DefaultClass1, DefaultClass2는 같은 패키지이므로 접근 가능하다.
✏️ PublicClassOuterMain
package access.b;
import access.a.PublicClass;
public class PublicClassOuterMain {
public static void main(String[] args) {
PublicClass publicClass = new PublicClass();
}
}
- 패키지 위치는
package access.b이다.
PublicClass는 public 클래스이므로 외부에서 접근할 수 있다.
PublicClassOuterMain과 DefaultClass1, DefaultClass2는 다른 패키지이므로 접근할 수 없다.