접근제어자 Access Modifier
자바에서는 접근 제어자를 통해서 각 API의 접근 권한을 제한할 수 있다.
클래스 앞에 붙는 접근제어자는 public, default만 가능하다.
클래스를 만들 때 어떤 클래스에 public을 붙여야 하는가?
: 자바 파일명과 동일한 대표 클래스
사람이 소스코드를 읽을 때 public 키워드가 붙은 클래스를 본다면
현 소스가 어떤 자바 파일 이름으로 되어있는지 알 수 있습니다.
즉, public이 없는 클래스는 자바 파일명과 동일한 클래스가 아니라는 것!
그렇다면 왜 파일 이름과 public 클래스명을 맞춰야 하는가?
: 가독성
자바 파일 안에 많은 클래스를 정의할 때 하나의 대표 클래스를 지정하고 파일명과 동일하게 맞추는 것이 가독성에 도움이 되기 때문이다.
접근 제어자의 접근 범위
public > protected > default(package) > private
- public: 가장 넓은 범위로 패키지 제한없이 모두 접근 가능한 상태
- protected: 같은 패키지 - 접근 가능, 다른 패키지여도 상속이나 자식 클래스, 인터페이스라면 접근 가능
- default(package): 아무런 접근 제한을 두지 않을 때, 즉 비어있다면 같은 패키지인 경우만 접근 가능
- private: 같은 클래스인 경우만 접근 가능
클래스내부 | 동일패키지 | 하위클래스 | 그 외 | |
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
'BackEnd > Java' 카테고리의 다른 글
[Java] 배열 복사 (깊은 복사 vs 얕은 복사) (0) | 2021.07.06 |
---|---|
[Java] Object (0) | 2021.07.01 |
[Java] 스태틱 Static (0) | 2021.07.01 |
[Java] 오버라이드, 오버로드 (0) | 2021.07.01 |
[Java] 객체지향프로그래밍 OOP* (0) | 2021.07.01 |
댓글