클래스 {필드,메소드}
- 캡슐화 : 관련된 내용을 모아서 가지고 있는 것
<접근제어자>
: 클래스 내에서 멤버의 접근을 제어하는 역할
한정자 | 클래스 내부 | 동일 패키지 | 하위 클래스 | 그외의 영역 |
public | ⭕ | ⭕ | ⭕ | ⭕ |
protect | ⭕ | ⭕ | ⭕ | ❌ |
default | ⭕ | ⭕ | ❌ | ❌ |
private | ⭕ | ❌ | ❌ | ❌ |
- public : 어떤 클래스든 접근가능, 모든 접근을 허용, 가장 넓은 의미,전체공개
- protected : 같은 패키지인 경우 접근 허용, 다른 패키지라도 상속을 받은 경우 접근허용
- private : 자기 자신만 접근가능
- default 접근지정자 : 아무것도 쓰지 않은 경우, 자기 자신과 같은 패키지 내에서 접근 허용
- public > protected > default > private
❗필드 뿐아니라 메서드나 클래스 앞에도 가능!
public class AccessObj {
public int p = 3;
protected int p2 = 4;
int k = 2;
private int i = 1;
}
public class AccessObjExam {
public static void main(String[] args) {
AccessObj obj = new AccessObj();
System.out.println(obj.p);
System.out.println(obj.p2);//같은 패키지 내 가능//다른 패키지 불가능 but 상속관계라면 가능
System.out.println(obj.k);//같은 패키지 내 가능//다른패키지 불가능
System.out.println(obj.i);//private은 접근 불가능
}
}
'☕JAVA > 🔎 공부 [JAVA]' 카테고리의 다른 글
[JAVA] 메소드 - 오버라이딩 (0) | 2022.08.10 |
---|---|
[JAVA] 추상클래스 (0) | 2022.08.10 |
[JAVA] 상속 / super / 부모생성자/ 클래스형변환 (0) | 2022.08.10 |
[JAVA] 패키지 (0) | 2022.08.10 |
[JAVA] 메소드 - 오버로딩 (0) | 2022.08.10 |