import 패키지명.클래스명;
import 패키지명.*; -> 모든 클래스
import문은 패키지문과 클래스 선언의 사이에 선언한다.
import java.util.Calendar;
import java.util.Date;
import java.util.ArrayList;
이렇게 하나하나 써주지 않고 java.util의 모든 클래스를 한번에 써주는 방법은
import java.util.*;
이렇게 써주면 된다.
import문은 컴파일 시에 처리되므로 프로그램의 성능에 영향이 없다.
import java.*;
는 java 패키지의 모든 클래스를 말한다. 패키지는 포함되지 않는다!
따라서,
import java.util.*;
import java.text.*;
이것을 java.; 으로 쓸 수 있을 것 같지만, import java.; 는 패키지를 포함하지 않기 때문에 같지 않다.
각각의 패키지는 java.util, java.text이기 때문이다.
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만으로 참조가능
Integer.; 에서 은 모든 static 멤버(static 변수, static 메서드)를 말하고,
Math.*; 라고 쓰면 Math 클래스의 모든 static 멤버를 말한다.
또한, System.out; 에서 out은 static 변수이다.
예를 들어, static을 사용하여 import하면
System.out.println(Math.random());
이러한 문장을
out.println(random());
위처럼 쓸 수 있다.
static import를 쓰는 이유는 클래스 이름을 붙여서 코드가 길어지는 것을 방지하기 위함이다. 하지만 클래스 이름을 붙이면 코드가 명확해지니 차라리 클래스 이름을 붙이는 것을 추천한다.