언어/Java
패키지
sector
2023. 7. 31. 20:18
※ 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; //인구
}