728x90
반응형
package chap7;
import chap7.test.ModifierEx2;
/*
* 제한자
* 접근제한자 : private < (default) < protected < public
* 그외제한자 : static, abstract(추상클래스나 추상매서드를 만듬), final
*
* 접근제한자 : 멤버의 접근 허용범위 지정해주는 제한자.
*
* 변수, 메서드, 상수, 생성자 : private, (default), protected, public
* class : (default), public
*
* 생성자의 접근 제한자를 이용하여 객체생성을 못하게 할 수 있다.
* Math 클래스 : 생성자의 접근제한자가 private
*/
class Modifier {
private int v1 = 100;
int v2 = 200; //default 생략되어있음.
protected int v3 = v1;
public int v4 = v2;
public void method() {
System.out.println("chap.Modifier 클래스의 method() 메서드");
System.out.println("v1=" + v1);
System.out.println("v2=" + v2);
System.out.println("v3=" + v3);
System.out.println("v4=" + v4);
}
}
class Modifier3 extends ModifierEx2 {
public void method() {
// System.out.println("v1=" + v1); //private : ModifierEx2 클래스내에서만 접근허용
// System.out.println("v2=" + v2); //(default) : chap.test 패키지내에서만 접근허용
System.out.println("v3=" + v3); //protected : 다른 패키지인 경우 상속관계에서 접근허용
System.out.println("v4=" + v4); //public : 그 외 모든곳에서 접근허용
}
}
public class ModifierEx1 {
public static void main(String[] args) {
Modifier m = new Modifier(); //생성자
// System.out.println("m.v1=" + m.v1); //v1의 접근제한자가 private이므로 오류
System.out.println("m.v2=" + m.v2);
System.out.println("m.v3=" + m.v3);
System.out.println("m.v4=" + m.v4);
m.method();
ModifierEx2 m2 = new ModifierEx2();
// System.out.println("m2.v1=" + m2.v1); //private : ModifierEx2 클래스내에서만 접근허용
// System.out.println("m2.v2=" + m2.v2); //(default) : chap7.test 패키지내에서만 접근허용
// System.out.println("m2.v3=" + m2.v3); //protected : 다른 패키지인 경우 상속관계에서 접근허용
System.out.println("m2.v4=" + m2.v4); //public : 그 외 모든곳에서 접근허용
System.out.println(m2);
Modifier3 m3 = new Modifier3();
m3.method();
//Math 클래스의 모든 멤버는 static임.
// Math math = new Math(); //객체생성 불가. 생성자 접근 불가
}
}
package chap7.test;
public class ModifierEx2 {
private int v1 = 10;
int v2 = 20;
protected int v3 = 30;
public int v4 = 40;
public String toString() {
return v1 + "," + v2 + "," + v3 + "," + v4;
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 23. Test1 풀이 (각 클래스를 생성하고 출력하기) (0) | 2022.03.21 |
---|---|
[Java] 23. Test1 (각 클래스를 생성하고 출력하기) (0) | 2022.03.21 |
[Java] 23. 패키지 (0) | 2022.03.21 |
[Java] 23. 추상클래스 (abstract) (0) | 2022.03.21 |
[Java] 22. 상속 Exam2 (각 클래스를 생성하고 출력하기) (0) | 2022.03.21 |