본문 바로가기
BackEnd/Java

[Java] 접근제어자 Access Modifier

by summer_light 2021. 7. 1.

접근제어자 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

댓글