OOP-19: 접근 제어자 (Access Modifier)

이의준·2024년 5월 30일

Java

목록 보기
40/87

접근 제어자 (Access Modifier)

  • private : 같은 클래스 내에서만 접근 가능
  • (default) : 같은 패키지 내에서만 접근 가능
  • protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근 가능
  • public : 접근 제한이 전혀 없음
제어자같은 클래스같은 패키지자손 클래스 (다른 패키지)전체
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
    }
}

0개의 댓글