접근제어자는 클래스, 메서드, 변수, 생성자 등의 접근 권한을 설정하는 데 사용된다
접근제어자는 코드의 가시성과 보안을 제어하는 중요한 역할을 한다
public
어디서나 접근할 수 있음을 의미
동일한 클래스, 동일한 패키지, 다른 패키지의 클래스 모두에서 접근이 가능
- 가장 높은 접근 수준을 가집니다.
- 모든 클래스에서 접근할 수 있습니다.
- 클래스, 메서드, 필드, 생성자에 적용할 수 있습니다.
protected
동일한 패키지 내의 클래스와 다른 패키지의 하위 클래스에서 접근할 수 있다
- 동일 패키지의 클래스에서 접근할 수 있다
- 다른 패키지의 하위 클래스에서도 접근할 수 있다
- 클래스에는 적용할 수 없고, 필드, 메서드, 생성자에만 적용할 수 있다
public class ProtectedClass {
protected int protectedField;
protected void protectedMethod() {
System.out.println("This is a protected method.");
}
}
default (package-private)
접근자를 명시하지 않으면, 해당 멤버는 기본적으로 패키지-프라이빗(package-private) 접근 수준을 가짐
동일한 패키지 내에서만 접근할 수 있음을 의미
- 동일한 패키지의 클래스에서만 접근할 수 있다
- 다른 패키지의 클래스에서는 접근할 수 없다
- 클래스, 메서드, 필드, 생성자에 적용할 수 있다
class DefaultClass {
int defaultField;
void defaultMethod() {
System.out.println("This is a default method.");
}
}
private
동일한 클래스 내에서만 접근할 수 있음을 의미한다
다른 클래스에서는 접근할 수 없다
- 가장 낮은 접근 수준을 가진다
- 동일한 클래스 내에서만 접근할 수 있다
- 클래스에는 적용할 수 없고, 필드, 메서드, 생성자에만 적용할 수 있다
'TIL(Develop)' 카테고리의 다른 글
멀티스레드와 스레드 풀 / 스레드와 프로세스의 차이 (0) | 2024.05.17 |
---|---|
Java의 메모리 관리와 가비지 컬렉션 (0) | 2024.05.16 |
Java에서 동일성과 동등성의 차이 (1) | 2024.05.15 |
JPA 사용할때 쿼리가 복잡해지는 경우의 해결방안 (0) | 2024.05.15 |
Spring mvc 패턴 (0) | 2024.05.14 |