[study]이론정리/JAVA(eclipse)
java 9일차 _03. 접근지정자
yoon9i
2024. 3. 20. 16:39
3. 접근지정자( access modifier )
1) 용도: 클래스들간의 접근(참조)을 제한하는 방법.
2) 4가지 레벨
UML표기법 (+) (#) (-)
public protected (default) private
-----------------------------------------------------------------------------------------------
같은클래스인경우 : 가능 가능 가능 가능
같은패키지의 다른클래스: 가능 가능 가능 불가
다른패키지의 상속관계: 가능 가능 불가 불가
다른패키지의 다른클래스: 가능 불가 불가 불가
1. 같은패키지의 다른클래스
package exam14_접근지정자1_같은패키지;
public class Super {
// 같은패키지의 다른클래스
public int n1 = 10;
protected int n2 = 20;
int n3 = 30;
private int n4 = 40;
}
package exam14_접근지정자1_같은패키지;
public class Sub extends Super {
// 같은패키지의 다른클래스
private int m = 100;
public void info() {
System.out.println("public: " + n1);
System.out.println("protected: " + n2);
System.out.println("(default): " + n3);
// System.out.println("pritvate: " + n4); // 같은 클래스내에서만 가능
System.out.println("pritvate: " + m);
}
}
2. 다른패키지의 상속관계
package exam14_접근지정자2.parent;
public class Super2 {
// 다른패키지의 상속관계
public int n1 = 10;
protected int n2 = 20;
int n3 = 30;
private int n4 = 40;
}
package exam14_접근지정자2.child;
import exam14_접근지정자2.parent.Super2;
public class Sub2 extends Super2 {
// 다른패키지의 상속관계
private int m = 100;
public void info() {
System.out.println("public: " + n1);
System.out.println("protected: " + n2);
// System.out.println("(default): " + n3); // default 는 같은 패키지내에서만 가능
// System.out.println("pritvate: " + n4); // 같은 클래스내에서만 가능
System.out.println("pritvate: " + m);
}
}