2021. 2. 11. 10:43ㆍ코딩강좌/자바
접근 권한 범위
public > protected > default > private
public : 접근을 제한이 없음
protected: 동일한 패키지 내에 존재하거나 파생클래스에서만 접근가능
default : 아무런 접근 제한자 명시하지 않으면 default, 동일한 패키지 내에서만.
private : 자기 자신의 클래스내에서만 접근 가능.
public과 private의 예제를 통한 이해
main함수에서 A클래스에 대한 객체를 생성했습니다.
그리고 멤버변수인 one과 멤버함수인 getOne()을 접근했습니다. 이소스는 정상동작하지 않는다. A객체의 one변수에 저장된 값을 가져오기 위한 getOne()함수의 접근은 이상없습니다. 왜나하면 접근자가 public으로 되어있기 때문입니다. 하지만 . a.one 변수를 가져오려할때 one변수의 접근자 private으로 자신의 클래스내에 제한 되어있기 때문에 에러가 발생합니다.
public class AccessModifier {
public static void main(String[] args) {
A a = new A();
System.out.println(a.one);
System.out.println(a.getOne());
}
}
class A {
private String one;
public String getOne(){
one = "one";
return one;
}
}
dafault 접근제어자의 예제를 통한 이해
만약 위의 A 클래스를 하기와 같이 정의한다해도 에러는 발생하지 않습니다.
왜나하면 public이나 private없이 default접근자로 선언되었고
같은 패키지 안에 one변수가 존재하기 때문입니다.
class A {
String one;
String getOne(){
one = "one";
return one;
}
}
'코딩강좌 > 자바' 카테고리의 다른 글
클래스와 객체, 그리고 인스턴스 (0) | 2021.02.11 |
---|---|
자바의 상속(extends) 이해 (0) | 2021.02.11 |