접근 지시자
클래스, 필드, 메서드 단위로 외부에서 접근 가능한 범위를 설정하는 것을 말한다.
다른 표현으로는 접근 제한자(Access Modifier), 접근 수준 지시자(Access-level Modifier) 라고도 한다.
외부에서 접근 가능한 범위를 설정하기 때문에 아래와 같은 기능을 하게 된다.
- 객체 생성을 막기 위해 생성자를 호출하지 못하게 함
- 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하게 함
- 특정 메서드를 호출할 수 없도록 제한하는 기능을 함
접근 지시자 종류
- public
- 모든 패키지에서 아무런 제한 없이 호출할 수 있게 한다.
- protected
- default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 호출할 수 있도록 한다.
차이점은 다른 패키지에 속한 클래스가 해당 클래스의 하위 클래스라면 호출 할 수 있다.
- default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 호출할 수 있도록 한다.
- package-private (default)
- 접근 제한자를 명시하지 않았다면 default 접근 제한을 가진다.
같은 패키지에서는 제한 없이 호출할 수 있으나, 다른 패키지에서는 호출할 수 없다.
- 접근 제한자를 명시하지 않았다면 default 접근 제한을 가진다.
- private
- 클래스 내부에서만 사용할 수 있다.
접근 지시자 사용 이유
- 외부로부터의 접근을 제한하여 데이터를 보호하기 위함
객체지향 개발방법론에서는 이를 '은닉성'이라고 표현함 - 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위함
객체지향 개발방법론에서는 이를 '캡슐화'라고 표현함
출처
Controlling Access to Members of a Class
docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
'JAVA' 카테고리의 다른 글
자바 표준 - JLS(Java Language Specification), JSR(Java Specification Request), JEP(Java Enhancement Proposal) (0) | 2021.04.16 |
---|---|
예외(Exception) - 커스텀 예외(Custom Exception) (0) | 2021.04.14 |
클래스패스(Classpath) (0) | 2021.04.13 |
예외(Excepton) - 정의, 목적, 구조, 사용 방법 (0) | 2021.01.16 |
패키지(Package) (0) | 2021.01.03 |