JAVA/국비수업
패키지-import(Day19)
Frog is cry
2020. 7. 24. 17:39
package day20.import1.myhouse;
import day20.import1.house1.BigRoom;
import day20.import1.house1.SmallRoom;
import day20.import1.house2.LivingRoom;
import day20.import1.house3.ShowRoom;
public class Room {
SmallRoom r1 = new SmallRoom();
LivingRoom r2 = new LivingRoom();
ShowRoom r3 = new ShowRoom();
day20.import1.house1.BigRoom br1 = new day20.import1.house1.BigRoom();
day20.import1.house2.BigRoom br2 = new day20.import1.house2.BigRoom();
}
package day20.import1.myhouse;
import day20.import1.house1.SmallRoom;
public class Room2 {
// import 단축키 연습
// 객체 생성 후 Ctrl + Shift + O
SmallRoom r1 = new SmallRoom();
}
package day20.ex02.class_access.package2;
//import day20.ex02.class_access.package1.A;
import day20.ex02.class_access.package1.B;
public class C {
// A a = new A();
// A 클래스는 package1에 만들어진 클래스입니다.
// 그런데 클래스 앞에 접근제한자가 없습니다.
// default라는 의미입니다.
// default 접근제한자는 동일한 패키지의 클래스만 접근이 가능합니다.
// 그러므로 package2에 있는 C클래스에서
// package1의 A클래스를 접근하지 못합니다.
B b = new B();
}
package day20.ex03_filed_method_access.package1;
public class A {
//필드
public int field1; // public 접근제한
int field2; // default 접근제한
private int field3; // private 접근제한
//생성자
public A() {
field1 = 1; // 클래스 내부일 경우 접근제한자 영향없음
field2 = 1; // 동일
field3 = 1; // 동일
method1(); // 동일
method2(); // 동일
method3(); // 동일
}
//메소드
public void method1() {} // public 접근제한
void method2() {} // default 접근제한
private void method3() {} // private 접근제한
}
package day20.ex03_filed_method_access.package1;
// 패키지가 A클래스와 동일
public class B {
public B() {
A a = new A();
a.field1 = 1;
a.field2 = 1;
//a.field3 = 1; // private필드 접근 불가
a.method1();
a.method2();
//a.method3(); // private필드 접근불가
}
}
package day20.ex03_filed_method_access.package2;
import day20.ex03_filed_method_access.package1.A;
public class C {
// 패키지가 A,B클래스와 다름
public C() {
A a = new A();
a.field1 = 1;
// a.field2 = 1; //default 필드 접근불가
// a.field3 = 1; //private 필드 접근불가
//
a.method1();
//a.method2(); //default 메소드 접근불가
//a.method3(); //private 메소드 접근불가
}
}