접근 범위 넓은 순서대로 비교 : public > protected > default > private
접근제한자는 필드 뿐만 아니라 메소드, 클래스 앞에도 붙여서 사용할 수 있습니다.
package javaStudy;
public class AccessObj {
public int p1 = 1;
protected int p2 = 2;
int d = 3; // default 접근 지정자
private int p3 = 4;
}
package javaStudy;
public class AccessObjExam {
public static void main(String[] args) {
AccessObj obj = new AccessObj();
System.out.println(obj.p1);
System.out.println(obj.p2);
System.out.println(obj.d);
System.out.println(obj.p3); // 컴파일 오류가 발생합니다.
}
}
package com.javaStudy;
import javaStudy.AccessObj;
public class AccessObjExam extends AccessObj{
public static void main(String[] args) {
AccessObjExam obj = new AccessObjExam();
System.out.println(obj.p1);
System.out.println(obj.p2);
System.out.println(obj.d);// 컴파일 오류가 발생합니다.
System.out.println(obj.p3);// 컴파일 오류가 발생합니다.
}
}