※ default package - 논리적으로 구분해놓은 단위(물리적인 단위X, 실제로는 존재하지 않는다)
package 나눠져도 소스코드에는 아무 의미 없다
/*import world.asia.Korea;
import world.asia.Japan;
*/
import world.asia.*; // 위의 2줄을 이렇게 한줄로도 가능하나, 가독성이 떨어져서 권장하지 않음
// world.asia의 korea인지 world.europe의 korea인지 구분이 안되서
//import world.*.*; // 이건 compile 에러 발생. 쓰면 안된다.
import world.europe.France;
public class CountryTest {
public static void main(String[] args) {
/* 매번 정확한 경로 적는거 귀찮으니까
클래스명만 사용할 수 있도록 지원하는 명령어 import
world.asia.Korea k;
k = new world.asia.Korea();
world.asia.Japan j = new world.asia.Japan();
*/
Korea k;
k = new Korea();
Japan j = new Japan();
France f = new France();
// k.capital = "베이징"; // capital 변수가 public이라서 직접 접근가능해서 틀린 답 입력 가능
// // 그래서 private로 수정해서 직접 값 셋팅
// k.language = "일본어";
// k.popultaion = -1; // 접근불가능
}
}
package world.europe;
public class France {
}
package world.asia;
public class Japan {
}
package world.asia;
public class Korea { // public 누구나 접근할 수 있는 class
// public String capital; //수도 capital 변수가 public이라서 직접 접근가능해서 틀린 답 입력 가능
private String capital = "서울"; //수도
String language; //언어, 접근제어자 아무것도 안붙은 상태=default 상태.
private int population; //인구
}
'언어 > Java' 카테고리의 다른 글
상속(Inheritance) (0) | 2023.07.31 |
---|---|
싱글톤 (0) | 2023.07.31 |
Product 예제 1 (0) | 2023.07.31 |
오버로드(Overload) (0) | 2023.07.31 |
접근제어자(Access Modifier) (0) | 2023.07.31 |