| 제어자 | 같은 클래스 | 같은 패키지 | 자손 클래스 (다른 패키지) | 전체 |
|---|---|---|---|---|
| public | ○ | ○ | ○ | ○ |
| protected | ○ | ○ | ○ | |
| (default) | ○ | ○ | ||
| private | ○ |
public > protected > (default) > private
(접근 제한 없음) - 같은 패키지 + 자손 - 같은 패키지 - 같은 클래스
package ch07;
class Parent130 {
private int prv; // 같은 클래스
int dft; // 같은 패키지
protected int prt; // 같은 패키지 + 자손 (다른 패키지)
public int pub; // 접근 제한 없음
public void printMembers() {
System.out.println(prv); // ok
System.out.println(dft); // ok
System.out.println(prt); // ok
System.out.println(pub); // ok
}
}
public class PackageTest {
public static void main(String[] args) {
Parent130 p = new Parent130();
System.out.println(p.prv); // 에러
System.out.println(p.dft); // ok
System.out.println(p.prt); // ok
System.out.println(p.pub); // ok
}
}