[TIL][Java][2023-12-28] 접근제어자
2023. 12. 28. 19:57ㆍTIL/Java
접근제어자
클래스의 멤버(필드, 메서드, 생성자 등)에 대한 접근 권한을 제어하는 키워드이다.
클래스 외부에서의 접근을 제한하거나 허용함으로써 데이터 은닉과 보안을 제공한다.
- public : 어떤 클래스에서든 접근 가능하다.
- protected : 동일한 패키지 내의 클래스 또는 해당 클래스를 상속받은 클래스에서 접근할 수 있다.
- default : 아무런 접근 제어자를 사용하지 않은 경우이다. 동일한 패키지 내의 클래스에서만 접근할 수 있다.
- private : 선언된 클래스 내부에서만 접근 가능하며, 외부에서는 접근할 수 없다.
사용가능한 접근제어자
- 클래스 : public, default
- 메서드, 멤버변수 : public, protected, default, private
- 지역변수 : 없음
접근제어자를 이용한 캡슐화 (은닉성)
유효한 값을 유지하도록, 함부로 변경하지 못하도록 접근을 제한하는 것이 필요하다.
생성자의 접근제어자
- 생성자에 접근제어자를 사용함으로 인스턴스의 생성을 제한할 수 있다.
- 일반적으로 생성자의 접근제어자는 클래스의 접근제어자와 일치한다.
Getter 와 Setter
주로 private으로 선언된 클래스의 멤버변수에 접근하고 값을 설정하기 위해 사용된다.
- Getter : 클래스 내부의 private 멤버변수의 값을 가져오기 위한 메서드이다.
이를 통해 클래스 외부에서 해당 변수의 값을 읽을 수 있다. - Setter : 클래스 내부의 private 멤버 변수에 값을 설정하기 위한 메서드이다.
이를 통해 클래스 외부에서 해당 변수의 값을 변경할 수 있다.
제어자의 조합
- 클래스 : public, default, final, abstract
- 메서드 : public, protected, default, private, final, abstract, static
- 멤버변수 : public, protected, default, private, final, static
- 지역변수 : final
제어자 사용시 주의 사항
- 메서드에 static과 abstract를 함께 사용할 수 없다.
- 클래스에 abstract와 final을 동시에 사용할 수 없다.
- abstract 메서드의 접근제어자가 private일 수 없다.
- 메서드에 private와 final을 같이 사용할 필요는 없다.
'TIL > Java' 카테고리의 다른 글
[TIL][Java][2024-01-02] 오버라이딩 (2) | 2024.01.02 |
---|---|
[TIL][Java][2023-12-29] 상속 (0) | 2023.12.29 |
[TIL][Java][2023-12-27] this 와 this() (0) | 2023.12.27 |
[TIL][Java][2023-12-22] 생성자 (constructor) (0) | 2023.12.22 |
[TIL][Java][2023-12-21] 인스턴스 멤버와 클래스 멤버 (2) | 2023.12.21 |