package ex_package;
import com.lg.tv.*;
// com.lg.tv 패키지를 소스코드에 포함시키기 위한 import 문 작성
//import com.lg.tv.Tv;
//import com.lg.tv.*;
public class Ex1 {
public static void main(String[] args) {
/*
* [ 패키지(Package) 및 package 문]
* - 패키지명은 보통 각 회사의 도메인 이름을 사용하며
* 도메인 이름을 상위도메인부터 역순으로 나열하여 지정
* (ex. samsung.com 일 경우 com.samsung으로 지정
* itwillbs.co.kr 일 경우 kr.co.itwillbs로 지정)
* - 특정 클래스의 이름을 나타내는 기본적인 규칙은
* "패키지명.클래스명"의 형태로 지정하는 것이 기본이나
* 현재 패키지 내에 중복되는 클래스가 없을 경우 패키지명 생략 가능
*
* < 기본 문법 >
* package 상위패키지명.하위패키지명;
*
* [ import 문]
*
* - 자동 import 단축키 : Ctrl + Shift + o
*
* < 기본 문법 >
* import 상위패키지명.하위패키지명.클래스명; 또는
* import 상위패키지명.하위패키지명.*;
*/
// 원래 사용하던 클래스 지정 방식(패키지명을 생략하고 사용)
String str = "홍길동";
// 실제 String 클래스를 지정하는 정석적인 방법
// => java.lang 패키지 내에 위치하므로
java.lang.String str2 = "홍길동";
// com.lg.tv 패키지의 Tv 클래스 지정하여 객체 생성
// com.lg.tv.Tv tv = new com.lg.tv.Tv();
// com.lg.tv 패키지명을 생략하기 위해서는
// 해당 패키지를 improt 문을 통해 현재 소스에 포함시켜야함
Tv tv = new Tv();
// com.samsung.tv 패키지 내의 Tv 클래스 사용해야하는 경우
// => 이미 com.lg.tv 패키지의 Tv 클래스가 import 되어 있으므로
// 다른 패키지의 Tv 클래스는 패키지명을 포함해서 지정해야함
// (동일한 클래스를 improt 할 수 없다!)
com.samsung.tv.Tv tv2 = new com.samsung.tv.Tv();
// import 문을 사용하여 "com.lg.tv.Tv" 위리츨 지정했을 경우
LgTv lgTv = new LgTv(); // 사용 불가능(위치를 모르기 때문)
// => 해결책 : import 문을 추가하거나 tv.*로 변경해야한다.
}
}