추상화, 캡슐화를 통해 정리된 데이터 속성과 기능은 클래스로 정의하여 사용할 수 있다. 이 때 다른 클래스에서 해당 클래스로 접근 가능한 범위를 제한하는 키워드를 "접근제한자"라고 한다.
public
같은 프로젝트 내에 있는 외부의 모든 클래스에서 접근이 가능
protected
같은 패키지 내부의 클래스나 하위 클래스에서 접근이 가능하다. 여기서 하위클래스에서의 접근은 상위클래스에서 상속받은 경우로 자기 자신과 상속받은 하위클래스 둘 다 접근이 가능하며, 상속관계는 같은 패키지가 아니더라도 접근이 가능하다.
default
접근 제어자를 명시하지 않는 경우(직접 작성하지 않고 생략)로 같은 패키지 내부에 있는 클래스에서 접근이 가능하다.
private
같은 클래스 내에서만 접근이 가능하다.
해당 클래스 내부 | 같은 패키지 내 | 하위 클래스 내 | 전체(프로젝트) | |
+ public | O | O | O | O |
# protected | O | O | O | |
~ (default) | O | O | ||
- private | O |
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[Java] 오버로딩과 오버라이딩 (0) | 2022.08.25 |
---|---|
[Java] 객체 지향 언어 (0) | 2022.08.24 |
[Java] getter/setter (0) | 2022.08.20 |
[Java] 생성자(Constructor) (0) | 2022.08.19 |
[Java] 배열 복사 (0) | 2022.08.18 |