클래스 파일들을 모아놓는 공간
-> 서로 다른 패키지는 같은 이름의 클래스가 각각 따로 존재 가능
자바에서 패키지를 생성하면, 폴더 구조로 된 패키지가 생성됨
특정 클래스 파일은 하나의 패키지에만 소속 가능
자바의 모든 클래스는 클래스명 앞에 패키지명을 기술하여 표기
상위 패키지명.하위 패키지명.클래스명 형태로 지정
패키지명 중복되지 않도록 도메인 네임 사용
특정 클래스 파일 첫 번째 라인에 해당 클래스가 소속된 패키지명 명시
실제 클래스 파일의 위치와 패키지명이 다를 경우 오류 발생
반드시 주석을 제외한 첫 번째 라인에서 사용
-> 클래스 내 단 한번만 사용 가능
< 패키지 키워드 사용 기본 문법 >
소스코드 첫 번째 라인에서
package 패키지명;
특정 패키지를 자주 사용하는 경우 import문을 사용하여 해당 패키지와 같은 클래스명을 지정할 경우 패키지명 생략 가능
-> 원래는 패키지명.클래스명 형태로 지정
java.lang 패키지
는 유일하게 import 없어도 생략 가능한 패키지
import문은 패키지명보다 아래, 클래스 선언부보다 위쪽에 위치하며, 여러 번 작성 가능
import문 뒤에 패키지명과 클래스명을 지정하여 등록, 클래스명 대신 만능문자(*) 지정할 경우 해당 패키지 내 모든 클래스 포함시킴
< import 키워드 사용 기본 문법 >
import 패키지명.클래스명;
import 패키지명.*;
자동 import 단축키
ctrl + shift + o
java.lang 패키지에 Stirng 클래스를 지정하는 방법
패키지명 명시하고 .
붙인 뒤 클래스명 지정
java.lang 패키지는 생략 가능한 패키지 이름이므로 클래스명만 지정 가능
java.lang.String str; // java.lang 패키지의 String 클래스 선언
// 또는
String str; // java.lang 패키지는 생략 가능함
java.lang 패키지 외 나머지 패키지
패키지명 생략할 경우 컴파일 에러 발생
클래스가 포함된 패키지를 import문으로 지정할 경우 패키지명 생략하고 클래스명만 사용 가능
서로 다른 패키지에 동일한 이름의 클래스가 존재할 경우 import문을 포함시키더라도 최소 하나의 클래스는 패키지명까지 명시해야 함
-> 실제 작성 시 명확한 구분을 위해 둘 다 패키지명 명시하는 게 더 좋음
Random r;
// 컴파일 에러 발생
// java.util 패키지는 생략 불가능한 패키지임
java.util.Random r;
//============================================
import java.util.Random; // import문 지정
public class Ex {
public static void main(String[] args) {
Ramdom r2; // 클래스명만 사용
Ex ex = new Ex(); // 현재 클래스명이기 떄문에 인스턴스 생성 가능
}
}