class ImportTest {
java.util.Date today = new java.util.Date();
}
import문 사용 O
import java.util.Date;
class ImportTest {
Date today = new Date();
}
java.lang 패키지의 클래스는 자바의 기본 클래스이기 때문에 import 하지 않고도 사용할 수 있다.
ex) String, Object, System, Thread, ...
import문의 선언
선언 방법
import 패키지명.클래스명;
import 패키지명.*;
* 은 해당 패키지 하위의 모든 클래스를 뜻함
import문은 패키지 선언과 클래스 선언 사이에 선언한다.
import문은 컴파일 시에 처리되므로 프로그램의 성능에 영향 없다.
import java.util.Calendar;
import java.util.Date;
import java.util.ArrayList;
// * 로 모든 클래스를 import 한다고 하더라도 성능에 영향을 주지않는다.
import java.util.*
다음의 두 코드는 의미가 다르다.
import java.util.*; // util 패키지 밑의 모든 클래스
import java.text.*; // text 패키지 밑의 모든 클래스
import java.*; // java 패키지의 모든 클래스 (패키지는 포함 안됨)
이름이 같은 클래스가 속한 두 패키지를 import 할 때는 클래스 앞에 패키지명을 붙여줘야 한다.
import java.sql.*; // java.sql.Date
import java.util.*; // java.util.Date
public class ImportTest {
public static void main(String[] args) {
// 컴파일러가 sql 패키지 밑의 Date 클래스인지, util 패키지 밑의 Date 클래스인지 구별할 수 없으므로
// 클래스 앞에 패키지명을 붙여준다.
java.util.Date today = new java.util.Date();
}
}
static import문
static 멤버(static 변수, static 메서드)를 사용할 때, 클래스 이름을 생략할 수 있게 해준다.
import static java.lang.Integer.*; // Integer 클래스의 모든 static 메서드
import static java.lang.Math.random; // Math 클래스의 random 메서드만 (괄호 안 붙임)
import static java.lang.System.out; // System.out을 out만으로 참조가능
System.out.println(Math.random());
// =>
out.println(random());