728x90
class A {
public String y(){
return "public void y()";
}
private String z(){
return "public void z()";
}
public String x(){
return z();
// 메소드 x와 메소드 z는 같은 클래스의 소속이기 때문에
// 메소드 x에서 z를 호출 가능하다.
}
}
public class AccessDemo1 {
public static void main(String[] args) {
A a = new A();
System.out.println(a.y());
// 오류 발생 -> private는 외부 클래스에서 접근 불가능
//System.out.println(a.z());
System.out.println(a.x());
}
}
그렇다면 접근 제한자를 왜 사용하는가?
객체의 데이터를 함부로 접근하지 못하기 하기 위해서이다.
예를 들자면 은행에서 누구나 접근할 수 있는 창구와 관계자 외에는 출입하지 못하는 금고같은 경우를 생각할 수 있다.
public | protected | default | private | |
같은 패키지, 같은 클래스 |
O | O | O | O |
같은 패키지, 상속 관계 |
O | O | O | X |
같은 패키지, 상속 관계 X |
O | O | O | X |
다른 패키지, 상속 관계 |
O | O | X | X |
다른 패키지, 상속 관계X |
O | X | X | X |
오른쪽으로 갈수록 접근 제한이 강화된다.
소스 코드 이름이 PublicCorine.java라면 클래스 이름도 반드시 PublicCorine이어야 한다.
즉, 하나의 소스 코드에는 하나의 public 클래스가 존재할 수 있다는 것을 알자.
728x90
'강의 정리하기 > JAVA' 카테고리의 다른 글
인터페이스 (0) | 2022.01.18 |
---|---|
abstract (0) | 2022.01.18 |
컴파일, 패키지 (0) | 2022.01.17 |
오버라이딩, 오버로딩 (0) | 2022.01.12 |
생성자, 기본 생성자 (0) | 2022.01.04 |