접근 제어
- Public = 공용이라는 의미이므로 public을 맴버 앞에 붙이면 누구나 자유롭게 접근할 수 있는 멤버가 된다.
- Private = 전용이라는 의미이므로 private를 붙이면 클래스 안에서만 접근이 가능한 맴버가 된다.
- 없음 = 맴버 앞에 접근 지정자가 없으면 디폴트(default)로 동일한 패키지 안에서만 접근이 가능하게 된다. 패키지(Package)란 서로 관련된 클래스들을 하나로 묶은 것이다.
- Protected = 키워드를 붙이면 멤버는 부모 클래스와 자식 클래스만이 접근할 수 있다.(상속은 아직 학습하지 않았다.)
접근 지정자 | 클래스 | 패키지 | 자식 클래스 | 전체 세계 |
public |
O | O | O | O |
protected | O | O | O | X |
없음 | O | O | X | X |
private | O | X | X | X |
접근 지정자
상속시킬 멤버와 상속시키지 않을 멤버를 지정할 수 있다. 자식 클래스는 부모 클래스의 public 멤버, protected 멤버, 디폴트 멤버(부모 클래스와 자식 클래스가 같은 패키지에 있다면)를 상속받는다. 하지만 부모클래스의 private멤버는 상속되지 않는다.
접근 지정자 | 동일한 클래스 | 동일한 패키지의 일반 클래스 | 동일한 패키지의 자식 클래스 | 다른 패키지의 자식 클래스 | 다른 패키지의 일반 클래스 |
public | O | O | O | O | O |
protected | O | O | O | O | X |
없음 | O | O | O | X | X |
private | O | X | X | X | X |
cf. 인터페이스는 항상 public으로 상속 받아야 한다!
'java' 카테고리의 다른 글
자바 인수 전달 방법 (0) | 2019.04.11 |
---|---|
(자바) 관계연산자 VS 논리연산자 (0) | 2019.04.08 |
자바 연산의 원리 (0) | 2019.04.07 |
접근자와 설정자 (0) | 2019.04.07 |
안드로이드(Android),자바(JAVA) 소수점 자르기 (0) | 2019.04.06 |