[자바의 정석] import문

myeonji·2022년 2월 2일
0

JAVA

목록 보기
3/9

> import문

  • 클래스를 사용할 때 패키지 이름을 생략할 수 있다.
  • 컴파일러에게 클래스가 속한 패키지를 알려준다.
  • java.lang 패키지의 클래스는 import하지 않고도 사용할 수 있다. (String, Object, System, Thread ... )

> 선언 방법

import 패키지명.클래스명;
import 패키지명.*; -> 모든 클래스

import문은 패키지문과 클래스 선언의 사이에 선언한다.

  1. 패키지 선언 2. import문 3. 클래스 정의
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 멤버를 사용할 때 클래스 이름을 생략할 수 있게 해준다.

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를 쓰는 이유는 클래스 이름을 붙여서 코드가 길어지는 것을 방지하기 위함이다. 하지만 클래스 이름을 붙이면 코드가 명확해지니 차라리 클래스 이름을 붙이는 것을 추천한다.

0개의 댓글