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

profile
DBA, 경제 그리고 고냥이

0개의 댓글