반응형
☕️ 접근제어자(Access Modifier) 란?
접근 제어자는 자바 제어자의 한 종류로, 클래스, 멤버, 생성자 앞에 위치할 수 있으며, 사용 범위를 제한하는 역할을 한다.
접근 제어자는 public, protected, private이 있으며 아무것도 서술하지 않으면 적용되는 default가 있다.
멤버 및 생성자에는 4가지 종류 모두 사용이 가능하며, Class에는 public과 default만 사용 가능하다.
☕️ 클래스의 접근제어자
클래스에서는 public과 default 접근 제어자만 사용할 수 있다.
쉽게 말해 class 키워드 앞에 public이 붙어 있거나 붙어 있지 않거나로 구분된다.
// public 접근제어자
public class PublicClass {
}
// default 접근제어자
class DefaultClass {
}
- public
- 모든 패키지에서 접근이 가능하다. - default
- 같은 패키지에서만 접근이 가능하다.
☕️ 멤버 및 생성자의 접근제어자
멤버 및 생성자에는 public, protected, default, private라는 4가지 종류의 접근제어자를 모두 사용할 수 있다.
/** 필드 사용 예시 */
// public 접근제어자
public String publicStr;
// protected 접근제어자
protected String protectedStr;
// default 접근제어자
String defaultStr;
// private 접근제어자
private String privateStr;
/** 메서드 사용 예시 */
// public 접근제어자
public void publicMethod() {
}
// protected 접근제어자
protected void protectedMethod() {
}
// default 접근제어자
void defaultMethod() {
}
// private 접근제어자
private void privateMethod() {
}
/** 생성자 사용 예시 */
// public 접근제어자
public AccessModifier() {
}
// protected 접근제어자
protected AccessModifier() {
}
// default 접근제어자
AccessModifier() {
}
// private 접근제어자
private AccessModifier() {
}
- public
- 모든 패키지에서 접근이 가능하다. - protected
- 같은 패키지에서 접근이 가능하다.
- default와의 차이점은 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 해당 클래스에서도 접근이 가능하다. - default
- 같은 패키지에서만 접근이 가능하다. - private
- 클래스 내부에서만 접근이 가능하다.
☕️ 정리
적용 대상 | 접근 허용 범위 | |
public | 필드, 생성자, 메서드, 클래스 | 모두 허용 |
protected | 필드, 생성자, 메서드 | 같은 패키지, 다른 패키지이지만 해당 클래스를 상속받은 자식 클래스 |
default | 필드, 생성자, 메서드, 클래스 | 같은 패키지 |
private | 필드, 생성자, 메서드 | 오직 클래스 내부 |
References.
1. 혼공 - 자바 접근 제한자의 종류와 차이(public, protected, private)
2. 윤복로그 - Java 자바 접근제어자 범위, 종류
3. KADOSHoly - [Java] 자바 - 접근제어자 public, private, protected 및 default
반응형
'Java' 카테고리의 다른 글
[Java] 래퍼 클래스(Wrapper Class)와 박싱(Boxing), 언박싱(Unboxing) (0) | 2023.07.25 |
---|---|
[Java] final 제어자 (0) | 2023.04.21 |
[Java] String, StringBuffer, StringBuilder 차이 (2) | 2023.04.16 |
[Java] 클래스, 객체, 인스턴스 차이 (0) | 2023.04.12 |
[Java] 객체지향의 5대 원칙 - SOLID (0) | 2023.04.11 |