자바의 정석 기초편 ch7-15, 16 import문, static import문
7-15 import문
import문: 클래스를 사용할 때 패키지이름을 생략할 수 있다.
- 컴파일러에게 클래스가 속한 패키지를 알려준다.
- java.lang패키지의 클래스는 import하지 않고도 사용할 수 있다. < 기본 패키지라서 생략가능
예) String, Object, System
클래스 사용시 원래 Date클래스가 어디있는지 패키지 이름을 써줘야한다.
그러나 import문을 사용해서 생략가능
예) java.util Date today = new java.util Date < 이렇게 써줘야한다.
import java.util.Date;
Date클래스가 java.util 패키지에 있는거구나 알려준다.
import문 추가 이클립스 단축키: ctrl + shift + o <알파벳
import문 추가시 만약 똑같은 이름의 클래스가 여러개 있다면 선택하는 창이 나온다.
- import문을 선언하는 방법은
import 패키지명.클래스명; < ctrl+shift+o 하면 자동으로 import문 추가
import 패키지명.*; < 해당 패키지 안에 있는 모든 클래스
- import문은 패키지문과 클래스선언의 사이에 선언한다.
순서 1. 패키지 선언, 2. import문, 3. 클래스 정의
*: 모든 클래스
import java.util.*; < java.util패키지에 있는 모든 클래스
- import문은 컴파일 시에 처리되므로 프로그램의 성능에 영향없음.
import java.util.*과 import java.text.* 둘 다 import하고 싶다.
import java.*; 로 쓰면 되지 않겠나? 안된다! < java 패키지의 모든 클래스를 의미한다.
import java.*;에 패키지는 포함이 안된다.
한마디로 java.util패키지는 포함이 안된다는 소리다.
클래스 이름은 같으나 패키지 이름이 다른 경우가 있다.
이럴때 *을찍으면 Date클래스가 sql패키지에 있는건지, util패키지에 있는건지 알 수 없다.
그럴 때는 클래스 앞에 패키지 이름을 직접 적어준다.
java.util.Date < 이 클래스가 어떤 패키지에 속한 건지 명확하다.
7-16 static import문
static import문: static멤버를 사용할 때 클래스 이름을 생략할 수 있게 해준다.
Integer.*; < Integer 클래스에 있는 모든 static 멤버(static 변수, static메서드)
Math.random; < Math 클래스에 있는 random이라는 특정 메서드만 생략할 수 있게 해준다. ()는 안붙임
static import문을 쓰는 이유는 뒤로 갈수록 코드가 길어진다.
class이름 붙이면 코드가 너무 길어져서 코드를 짧게 하려고 쓰는것이다.
웬만하면 static import문은 쓰지말고 필요할 때만 써야된다.