접근 제어자는 객체 지향 프로그래밍에서 클래스의 멤버(필드, 메서드, 내부 클래스 등)에 대한 접근 범위를 지정하는 데 사용되는 키워드입니다. 이는 클래스의 캡슐화, 정보 은닉, 보안, 유지 관리 등의 측면에서 중요한 역할을 합니다.
public
- 가장 넓은 범위의 접근 제어자로, 어떤 클래스에서든 해당 멤버에 접근할 수 있습니다.
- 다른 패키지에서도 접근 가능합니다.
protected
- 같은 패키지 내의 클래스와 해당 클래스를 상속한 클래스에서 접근할 수 있습니다.
- 패키지가 다른 경우에도 상속 관계가 있다면 접근이 가능합니다.
- 하위 클래스에서 오버라이딩할 때 유용하며, 외부에서의 접근을 제한하면서 상속을 통해 확장할 수 있습니다.
default
- 접근 제어자를 명시하지 않은 경우, 같은 패키지 내에서만 접근할 수 있습니다.
private
- 가장 제한적인 범위의 접근 제어자로, 선언된 클래스 내에서만 접근할 수 있습니다.
- 클래스의 내부 구현을 숨기고 정보 은닉을 위해 사용됩니다.
- 다른 클래스에서 직접 접근할 수 없으므로, 메서드를 통해 간접적으로 접근합니다.(get, set)
접근 제어자 표로 비교
public | protected | default | private | |
접근 범위 | 모든클래스 및 패키지에서 접근 가능 | 같은 패키지 및 하위 클래스에서 접근 가능 | 같은 패키지에서 접근 가능 | 해당 클래스 내에서만 접근 |
'JAVA > 자바 기본 문법' 카테고리의 다른 글
[JAVA] instancef 연산자 (0) | 2023.08.19 |
---|---|
[JAVA] 문자열로 형변환(Casting / toString / valueOf) 차이점 (0) | 2023.08.10 |
[JAVA] String / StringBuilder / StringBuffer 차이점 (0) | 2023.08.10 |
[JAVA] 문자열 (0) | 2023.08.10 |
[JAVA] 배열 선언과 초기화 (0) | 2023.08.10 |