안녕하세요? 오늘은 자바(Java) public,private,protected,default 접근 제어자 차이점에 대해서 학습해볼게요!
우선 카테고리와 동일하게 환경은 Eclipse 입니다. (버젼은 중요하지 않습니다!)
자바(Java)에는 변수,함수,클래스에 대한 상속 접근을 제한 즉 접근을 못하게 해주는 문법이 있어요.
접근제한을 하는 이유는 생성을 위해서 만들어진 고유의 객체 멤버의 변수 값들이 필요하지 않은데 고의든 아니든 외부로부터 잘못된 접근 그리고 변경을 보호하기 위해서입니다. 실행도가 많이 나가버리기 이전에 메소드들의 성격을 정리하고 막음으로써 원하지 않은 상속, 실수를 줄이기 위함 입니다.
총 4가지의 접근 제어자가 있는데
제목에 있다싶이 public,private,protected,default 입니다. 하지만 실생활에서 가장 많이 사용하는 접근 제어자는 바로public 과 private 입니다.
(그렇다고 protected,default 2가지를 안쓰는 것은 아닙니다.)
접근 제어자의 허용 범위 순서는 아래와 같습니다.
public > protected > default > private
I. public : 접근에 제한이 없음.
II. protected : 같은 패키지안에 존재하거나, 파생된 클래스만 접근 가능.
III. default : 어떠한 접근 제한을 걸지 않으면, default 값이(자동으로)되며,
같은 패키지안에서만 접근이 가능.
IV. private : 자기 자신의 클래스안에서만 접근이 가능.
이해가 안되시는 분들을 위해 표로 설명을 해드릴게요.
종류 | 클래스 | 하위 클래스 | 같은 패키지 | 모든 클래스 |
public | O | O | O | O |
protected | O | O | O | X |
default | O | X | O | X |
private | O | X | X | X |
위 같은 표는 변수 선언, 생성자, 인스턴스, 상속 등 모든 메소드의 공통적인 부분이며 적용이 됩니다!
접근 제어자들의 차이점을 이해를 못하신다면, 상속은 더더욱히 어려우실 테니 꼭 이해하시고 넘어가시길 바랍니다.
※ 궁금하신 부분은 댓글을 달아주세요!
'Eclipse(JAVA)' 카테고리의 다른 글
자바(Java) 연산자 총 집합! (8) | 2019.07.29 |
---|---|
자바(Java) if 문 입성! (2) | 2019.07.28 |
자바(Java) Static 알고 넘어가자! (0) | 2019.07.27 |
자바(JDK) 환경변수 설정 (0) | 2019.07.25 |
자바/이클립스 다운로드 및 설치 (17) | 2019.04.17 |