안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
접근 제한자는
public -> protected -> default -> private 오른쪽으로 갈수록 접근 제한이 강화됩니다.
접근 제한 적용대상 접근할 수 없는 클래스
public 클래스,필드,생성자,메서드 없음
protected 필드,생성자,메서드 자식 클래스가 아닌 다른 패키지에 소속된 클래스
default 클래스,필드,생성자,메서드 다른 패키지에 소속된 클래스
private 필드,생성자,메서드 모든 외부 클래스
protected는 같은 패키지에서는 default와 같이 접근 제한이 없지만,
다른 패키지에서는 자식 클래스만 접근을 허용합니다.
예제)
package 1 A 클래스
package sec06.exam01_protected.package1;
public class A {
protected String field;
protected A() {
}
protected void method() {
}
}
package 1 B 클래스
package com.naver.blog1;
public class B {
public void method() {
A a = new A();
a.field = "value";
a.method();
}
}
package 2 C 클래스
package com.naver.blog2;
import com.naver.blog1;
public class C {
public void method() {
/* A클래스의 자식이 아니므로 A클래스의 필드 생성자 메서드 사용불가.
A a = new A();
a.field = "value";
a.method();
*/
}
}
package 2 D 클래스
package com.naver.blog2;
import com.naver.blog1;
public class D extends A {
public D() {
super(); // 같은 패키지는 아니지만 자식 클래스이므로 A클래스의 필드 메서드 생성자 사용가능.
this.field = "value";
this.method();
}
}
'자바' 카테고리의 다른 글
JAVA 자바 타입 변환과 다형성 필드의 다형성 (0) | 2017.03.12 |
---|---|
JAVA 자바 타입 변환과 다형성 자동 타입 변환(Promotion) (0) | 2017.03.12 |
JAVA 자바 final 클래스와 final 메서드 (0) | 2017.03.12 |
JAVA 자바 메서드 재정의 - 부모 메서드 호출(super) (0) | 2017.03.12 |
JAVA 자바 메서드 재정의 - 메서드 재정의(@Override) (0) | 2017.03.12 |