Java
접근제어자
옴악핫세
2023. 4. 5. 00:10
제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여해 줍니다.
- 접근 제어자 : public, protected, default, private
- 그 외 제어자 : static, final, abstract
하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근 제어자는 단 하나만 사용할 수 있습니다.
접근 제어자
멤버 또는 클래스에 사용, 외부에서 접근하지 못하도록 제한합니다.
- 클래스, 멤버변수, 메서드, 생성자에 사용되고, 지정되어 있지 않다면 default 입니다.
- public : 접근 제한이 전혀 없습니다.
- protected : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능합니다
- default : 같은 패키지 내에서만 접근이 가능합니다.
- private : 같은 클래스 내에서만 접근이 가능합니다.
- 사용가능한 접근 제어자
- 클래스 : public, default
- 메서드 & 멤버변수 : public, protected, default, private
- 지역변수 : 없음
- 접근 제어자를 이용한 캡슐화 (은닉성)
- 접근제어자는 클래스 내부에 선언된 데이터를 보호하기 위해서 사용합니다.
- 유효한 값을 유지하도록, 함부로 변경하지 못하도록 접근을 제한하는 것이 필요합니다.
- 생성자의 접근 제어자
- 생성자에 접근 제어자를 사용함으로 인스턴스의 생성을 제한할 수 있습니다.
- 일반적으로 생성자의 접근 제어자는 클래스의 접근 제어자와 일치합니다.
Getter와 Setter
객체의 무결성 즉, 변경이 없는 상태를 유지하기 위해 접근 제어자를 사용합니다.
- 이때 외부에서 필드에 직접 접근하는 것을 막기 위해 필드에 private, default 등의 접근 제어자를 사용할 수 있습니다.
- 그렇다면 우리는 어떻게 객체의 private 필드를 읽어오거나 저장할 수 있을까요?
- 우리는 Getter 와 Setter 를 사용하여 이를 해결할 수 있습니다.