자바에는 4가지의 접근 제어자가 있습니다.
1. private
2. (default)
3. protected
4. public
접근 제어자는 단어 그대로 접근 레벨을 제어하는 기능을 합니다.
접근 제어자를 이용한 캡슐화(encapsulation)
- 접근 제어자는 클래스 내부에 선언된 데이터를 보호하기 위해 사용합니다.
유효한 값을 유지하도록, 함부로 변경하지 못하도록 접근을 제한하는 것이 필요합니다.
데이터 감추기 (data hiding)라고 하며, 캡슐화에 해당됩니다.
private
- 접근 제어자 중에서 가장 접근 권한이 좁은 제어자로 자기 자신 클래스(class) 내에서만 이용할 수 있는 멤버를 선언할 때 사용합니다.
(default)
- 접근 관련 제어자를 별로 지정하지 않은 경우로, 접근 제어자가 없는 변수, 메소드는 default 접근 제어자가 되어 해당 패키지 내에서만 접근이 가능합니다.
protected
- 동일 패키지와 동일 패키지에 포함되지 않지만 상속을 통한 하위 클래스 관계에 있는 외부 패키지의 클래스도 접근이 가능합니다.
public
- 모든 클래스에 의해 접근이 가능합니다. 즉 접근 제약이 없습니다.
아래의 표는 각각의 접근 제어자들의 사용 범위입니다.
대상 |
사용 가능한 접근 제어자 |
|||
클래스 |
public, default |
|||
메서드 |
public, protected, (default), private |
|||
멤버 변수 |
||||
지역 변수 |
없음 |
아래의 표는 각각의 접근 제어자를 통한 접근 범위입니다.
제어자 |
같은 클래스 |
같은 패키지 |
자손 클래스 |
모든 클래스 |
public |
|
|
|
|
protected |
|
|
|
|
(default) |
|
|
|
|
private |
|
|
|
|
'IT > JAVA' 카테고리의 다른 글
자바 this, this(), super, super() (0) | 2018.01.02 |
---|---|
인터페이스(Interface) 정의 및 사용 이유 (장점) (0) | 2017.12.29 |
추상 클래스(Abstract Class)와 추상 메서드(Abstract Method) (0) | 2017.12.29 |
자바(Java) final 키워드 (0) | 2017.12.28 |
자바의 자료형 (JAVA Data Type) (0) | 2017.12.18 |