▶ 접근 제어자 (access modifier)
private 같은 클래스 내에서만 접근이 가능하다.
(defautl) 같은 패키지 내에서만 접근이 가능하다.
protected 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
public 접근 제한이 전혀 없다.
예제) private는 같은 클래스 내에서만 접근이 가능!!
package pkg1;
class Myparent {
private int prv; // 같은 클래스 내에서 사용 가능
public void printMembers() {
System.out.println(prv); // OK
}
}
public class MyParentTest {
public static void main(String[] args) {
Myparent p = new MyParnet();
System.out.println(p.prv); // 에러 -> prv은 같은 클래스 내에서만 사용가능함
}
}
▶다른 클래스에서 접근 제어자가 private 인 멤버를 사용하려 하면 에러가 발생함
예제) 다른 패키지에서 default 접근제어자 사용하려면 public을 붙인다
- pkg2 에서 pkg1의 MyParent 클래스 사용하려고 하면 에러가 남
- pkg1의 MyParent 클래스의 접근제어자가 (defautl) 이기 때문에 에러가 발생함
- MyParent 클래스 앞에 'public' 을 붙여줌
- Public은 하나만 있어야 하므로 MyParentTest의 제어자를 (defautl)로 변경해줌
- public 이름과 소스파일 이름이 같아야 하므로 "소스파일" 이름 변경 필요
- 소스파일 우클릭 > Refactor > Rename 선택
- 소스파일 이름을 MyParentTest 에서 MyParent로 변경
- 아직 pkg2에 에러가 뜨는데 'Ctrl+Shit+o' 로 임포트 해줌
private
private
protected
public
'자바의 정석 - 기초편' 카테고리의 다른 글
☆☆☆ 다형성 (polymorphism) (0) | 2022.09.07 |
---|---|
캡슐화 (0) | 2022.08.31 |
제어자, static, final, abstract (0) | 2022.08.23 |
import문 /static import문 (0) | 2022.08.23 |
패키지, 클래스 패스 (0) | 2022.08.23 |