Java/6. 클래스 (Class)
Day 8 : 필드와 메소드의 접근 제한 (public / protected / default / private)
pancakemaker
2021. 10. 28. 16:11
package1내 A 클래스
package sec13.exam03_field_method_access.package1;
public class A {
//①필드
public int field1;
int field2;
private int field3;
//③생성자
public A() { //필드값 초기화
field1 = 1; //같은 클래스 내에서는 모든 필드 접근 가능
field2 = 1;
field3 = 1;
method1(); //같은 클래스 내에서는 모든 메소드 접근 가능
method2();
method3();
}
//②메소드
public void method1() {}
void method2() {}
private void method3() {}
}
package2내 B 클래스
package sec13.exam03_field_method_access.package1;
public class B {
//생성자
public B() {
A a = new A();
a.field1 = 1; //public : 접근 가능
a.field2 = 1; //default : 같은 패키지 내 접근 가능
//a.field3 = 1; //private : 다른 클래스이므로 접근 불가
a.method1(); //public
a.method2(); //default
//a.method3(); //private : 다른 클래스이므로 접근 불가
}
}
package3내 C 클래스
package sec13.exam03_field_method_access.package2;
import sec13.exam03_field_method_access.package1.A;
public class C {
//생성자
public C() {
A a = new A();
a.field1 = 1; //public : 접근 가능
//a.field2 = 1; //default : 접근 불가능 (다른 패키지에서 접근 불가)
//a.field3 = 1; //private : 접근 불가
a.method1(); //public : 접근 가능
//a.method2(); //default : 접근 불가능 (다른 패키지에서 접근 불가)
//a.method3(); //private : 접근 불가
}
}