프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch7-15, 16 import문, static import문

life grow 2022. 8. 25. 00:04

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문은 쓰지말고 필요할 때만 써야된다.