
private < default < protected < public 순으로 보다 많은 접근을 허용.
private 접근 제어자가 붙은 변수 또는 메소드는 해당 클래스에서만 접근이 가능.
public class AccessModifier {
private String secret;
private String getSecret() {
return this.secret;
}
}
다른 클래스에서는 접근이 불가능.
접근제어자를 별도로 설정하지 않는다면 전근제어자가 없는 변수나 메소드는 default 접근제어자가 되어 해당 패키지 내에서만 접근이 가능
HouseKim.java
package jump2java.house;
public class HouseKim {
String lastname = "kim";
}
HousePark.java
package jump2java.house; //같은 패키지
public class HousePark {
String lastname = "park";
public static void main(String[] args) {
HouseKim kim = new HouseKim();
System.out.println(kim.lastname);
}
}
접근제어자가 protected인 경우, 해당 접근제어자가 붙은 변수나 메소드는 동일 패키지 내의 클래스 또는 상속받은 외부 패키지의 클래스에서 접근이 가능.
HousePark.java
package jump2java.house;
public class HousePark {
protected String lastname = "park";
}
EungYongPark.java
package jump2java.house.person;
import house.HousePark;
public class EungYongPark extends HousePark {
public static void main(String[] args) {
EungYongPark eyp = new EungYongPark();
System.out.println(eyp.lastname);
}
}
public 접근제어자가 붙은 변수나 메소드는 어떤 클래스에서라도 접근이 가능.