클래스 레벨의 접근 제어자는 public, default 만 사용할 수 있다.
private, protected 는 사용할 수 없다.
public 클래스는 반드시 파일명과 이름이 같아야 한다.
하나의 자바 파일에 public 클래스는 하나만 등장할 수 있다.
하나의 자바 파일에 default 클래스 접근 제어자를 사용하는 클래스는 무한정 만들 수 있다.
PublicClass
package access.a;
public class PublicClass {
public static void main(String[] args) {
PublicClass publicClass = new PublicClass();
DefaultClass1 defaultClass1 = new DefaultClass1();
DefaultClass2 defaultClass2 = new DefaultClass2();
}
}
class DefaultClass1 {
}
class DefaultClass2 {
}
PublicClassInnerMain
package access.a;
public class PublicClassInnerMain {
public static void main(String[] args) {
PublicClass publicClass = new PublicClass();
DefaultClass1 defaultClass1 = new DefaultClass1();
DefaultClass2 defaultClass2 = new 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 publicClassOuter = new PublicClass();
// DefaultClass1 defaultClass1 = new DefaultClass1();
// DefaultClass2 defaultClass2 = new DefaultClass2();
}
}
java: access.a.DefaultClass1 is not public in access.a; cannot be accessed from outside package
default 여서 다른 패키지에 접근을 하지 못하기 때문에 컴파일 에러가 나옵니다.