티스토리 뷰
패키지 Package
package 상위패키지명. 하위패키지명; 의 형태
계층 구조로 이루어져 있을 경우, '상위패키지명.하위패키지명.클래스명'
- 자바에서 클래스 파일을 모아놓는 공간으로 윈도우에서의 폴더, 리눅스에서의 디렉토리에 해당하는 개념이다.
- 해당 클래스가 소속된 패키지를 명시하는데 사용된다. 소스코드에서 가장 먼저 실행되어야 하는 코드 (맨 윗줄에 위치)
- 패키지 생성 생략 시, 물리적 폴더가 없는 default package가 생성된다.
- 하나의 패키지에 같은 이름의 클래스가 중복될 수 없으나, 서로 다른 패키지에는 가능하다. (= 중복 가능)
- 특정 클래스 파일은 하나의 패키지에만 소속되어야 한다. 클래스 파일 내에 한번만 사용 가능하다.
package co.kr.google;
public class Tv {
}
- java.lang 패키지는 기본적으로 포함되는 유일한 패키지이므로 java.lang 패키지 내의 클래스는 클래스 명만으로 접근 가능하다.
임포트 Import
- 패키지의 클래스를 현재 클래스 내에 포함시키는 키워드
- 패키지 문과 달리 여러 번 사용 가능하며, 패키지 문 아래 쪽에 위치한다.
- 원래 클래스명을 지정 시 '패키지명.클래스명' 형태로 지정해야 하지만 패키지명을 생략하고 싶을 경우, 해당 패키지명을 import문으로 등록시키면 패키지명을 생략하고 클래스명만으로 사용 가능하다.
- 클래스명 지정 시 자동 완성 기능을 사용하거나 Ctrl + Shift + O로 import문 자동 생성 가능하다.
// String 클래스 사용방법
String s1 = "홍길동"; // 클래스명만으로 사용했었음
// 정상적인 String 클래스 사용 방법 -> java.lang 패키지명을 포함하여 기술함
java.lang.String s2 = "홍길동";
- String 클래스가 포함된 java.lang 패키지는 기본적으로 포함된 패키지이므로 패키지명을 생략한 채 클래스 명만으로 객체 사용이 가능하다!
// java.util 패키지의 Random 클래스 인스턴스 생성
// Random r = new Random();
java.util.Random r = new java.util.Random();
- 패키지명을 포함하지 않을 경우 클래스를 찾지 못하므로 존재하지 않는 클래스 지정으로 인한 오류 발생
=> 패키지명을 포함하여 클래스 지정을 해야한다.