접근제어자
- public : 접근제한이 없다.
- protected : 같은 패키지 + 상속받은 클래스에서 접근 가능
- default : 같은 패키지에서만 접근 가능
- private : 클래스 내에서만 접근 가능
public class AccessModifier{
public String publicVar = "public : 접근제한이 없음";
protected String protectedVar = "protected : 같은 패키지 + 상속받은 클래스에서 접근 가능";
String defaultVar = "default : 같은 패키지에서만 접근 가능";
private String privateVar = "private : 클래스 내에서만 접근 가능";
puublic void publicMethod(){
System.out.println(publicVar;
}
protected void protectedMethod(){
System.out.println(protectedVar);
}
void defaultMethod(){
System.out.println(defaultVar);
}
private void privateMethod(){
System.out.println(privateVar);
}
public static void main(String[] args){
AccessModifier am = new AccessModifier();
System.out.println(am.publicVar);
am.publicMethod();
System.out.println(am.protectedVar);
am.protectedMethod();
System.out.println(am.defaultVar);
am.defaultMethod();
System.out.println(am.privateVar);
am.privateMethod();
}
}
public class AccessTest{
public static void main(String[] args) {
AccessModifier am = new AccessModifier();
System.out.println(am.publicVar);
am.publicMethod();
System.out.println(am.protectedVar);
am.protectedMethod();
System.out.println(am.defaultVar);
am.defaultMethod();
}
}
import g_oop2.AccessModifier;
public class AccessTest extends AccessModifier {
public static void main(String[] args) {
AccessModifier am = new AccessModifier();
System.out.println(am.publicVar);
am.publicMethod();
AccessTest at = new AccessTest();
System.out.println(at.protectedVar);
at.protectedMethod();
}
}
접근제어자를 사용하는 이유
- 데이터를 보호하기 위해
- 사용하는데 불필요한 멤버를 숨기기 위해