접근 지정자
접근 지정자는 말 그대로 접근을 지정하는 키워드이다. 객체지향에서 중요한 은닉을 달성하기 위해 사용된다. 접근 지정자가 아니라 접근 제어자, 접근 제한자라고도 하며, 이를 통해 접근 가능한 범위를 각각 지정할 수 있다.
접근 지정자의 종류는 아래와 같다.
public
: 모든 다른 클래스에 허용한다.protected
: 상속받은 클래스와 같은 패키지에 소속된 클래스에만 허용한다.default
: 기본 제한자로 접근 지정자를 설정하지 않으면 default가 되며, 같은 패키지에 소속된 클래스에만 허용한다.private
: 해당 클래스에만 허용한다.
표로 보면 다음과 같이 허용된다.
접근 지정자 | 해당 클래스 내부 | 같은 패키지 | 자식 클래스 | 모든 클래스 |
public |
O | O | O | O |
protected |
O | O | O | X |
default |
O | O | X | X |
private |
O | X | X | X |
접근 제한
클래스 자체에 대해서도 접근을 지정할 수 있다. 이때는 public
과 default
만 사용된다.
public class ClassName1 {
...
}
class ClassName2 {
...
}
public
으로 설정하면 다른 패키지에서도 사용 가능하고, default
로 설정하면 다른 패키지에서는 사용 불가능하다.
인스턴스 변수와 메소드에는 위 소개한 모든 접근 지정자를 사용할 수 있다. 특히 생성자에 접근 지정자를 설정하여 객체 생성이 가능한 범위를 조절할 수 있다.
class ClassName {
private String name;
protected int age;
void printInfo() {
System.out.println(name);
System.out.println(age);
}
public ClassName() {
name = "Hong-gil-dong";
age = 0;
}
}
'Language > Java' 카테고리의 다른 글
[Java] 업캐스팅(upcasting)과 다운캐스팅(downcasting) (0) | 2024.11.12 |
---|---|
[Java] 클래스 상속(inheritance) (0) | 2024.11.12 |
[Java] 클래스(class)와 객체(object) 선언 (0) | 2024.11.03 |
[Java] Scanner 클래스를 이용한 입력 (0) | 2024.10.29 |
[Java] 연산자 우선순위 (0) | 2024.09.10 |