접근 제어자 종류는
1. private
2. public
3. default
4. protected
이렇게 4가지가 있습니다. 각자의 역할에 대해 알아보겠습니다.
private
private로 선언된 클래스 멤버는 외부에 공개되지 않으며, 외부에서 직접 접근할 수 없습니다.
즉, 클래스 내부의 동작을 구현하는 데 사용됩니다.
public
public의 클래스 멤버는 외부로 공개되며, 해당 객체를 사용하는 프로그램 어디에서나 직접 접근할 수 있습니다.
default
클래스 및 클래스 멤버의 접근 제어의 기본 값으로 JAVA에서는 별도로 명시합니다.
defualt를 위한 제어자는 따로 존재하지 않고, 접근 제어자가 없다면 자동으로 default로 지정됩니다.
defualt는 같은 패키지에 속하는 멤버에게만 접근할 수 있습니다.
protected
JAVA는 private로 정보를 은닉하고, public으로 인터페이스를 구축합니다.
하지만 부모, 자식간의 관계에 따라 구분해서 관리할 필요가 있다면! 이때 사용하는 것이 protected입니다.
protected가 접근할 수 있는 영역은 3가지입니다.
1. 이 멤버를 선언한 클래스의 멤버
2. 이 멤버를 선언한 클래스가 속한 패키지의 멤버
3. 이 멤버를 선언한 클래스를 상속받은 자식 클래스의 멤버
표로 정리하면 위처럼 private < default < protected < public 순으로 영역이 확장됩니다.
활용 형태
대상에 따라 접근 제어자를 다르게 사용하므로 활용형태를 조금 더 알아보겠습니다.
Class를 정의할 때에는 public, default, final, abstract를 사용할 수 있습니다.
다만, abstract는 확장을 하는 것이고, final은 확장을 하지 않는 다는 것을 의미하기에 같이 사용할 수 없습니다.
method는 모든 접근 제어자, final, abstract, static을 사용할 수 있습니다.
다만, static 메서드도 abstract의 확장과는 별도로 사용하기에 병행할 수 없습니다.
멤버 변수는 모든 접근 제어자, final, static을 사용할 수 있습니다.
지역 변수는 final만 사용할 수 있습니다.
'기술 스텍 > Java' 카테고리의 다른 글
[Java] Error & Exception에 대한 정리 (1) | 2024.06.26 |
---|---|
[Java] 인터페이스 vs 추상클래스 용도 차이 (3) | 2024.04.21 |
[Java] Reflection이란? (4) | 2024.04.13 |
[Java] 컴포지션이란? (60) | 2024.04.12 |
[Java] Interned String (1) | 2024.04.05 |