티스토리 뷰

Java/JAVA의 정석_객체지향

import문

Jenny_yoon 2022. 10. 31. 14:00
728x90
반응형

1) 특징

- import문을 사용해두면 이후 클래스를 사용할 때 패키지 이름을 생략 할 수 있다.

- 컴파일러에게 클래스가 속한 패키지를 알려준다.

- import문 단축키 : ctrl + shift + o

ex.예시

- java.lang 패키지(기본 패키지)의 클래스(는 import하지 않고도 사용할 수 있다. (String, Object, System, Thread...)

import java.lang.*; //*이란, 모든 클래스를 의미
class ImportTest2
{
	public static void main(String[] args) {
    	System.out.println("Hello World!");
    }
}

위 java.lang import 문은 기본 패키지로서 항상생략 가능. 만약 위 import를 사용하지 않는다면 아래와 같이 사용해야한다.

 	public static void main(java.lang.String[] args) {
	java.lang.System.out.println("Hello World!");
    }

- 클래스를 사용할 때 패키지 이름을 생략할 수 있다.

- 컴파일러에게 클래스가 속한 패키지를 알려준다.

 

2) import문의 선언

- import 패키지명.클래스명;

     또는

- import 패키지명.*; (*은 모든 클래스를 의미함)

- 위치 : 패키지문과 클래스선언 사이에 import 문 선언

이 2개는 같음. 프로그램의 성능에 영향없음. (라이브러리/API개발시 주로 왼쪽 사용, 프로그램 개발시 주로 오른쪽 사용)
이 두 코드는 서로 의미가 다르다. java.*은 java패키지의 모든클래스를 의미함 (패키지는 미포함!)

- 이름이 같은 클래스가 속한 두 패키지를 import할 때는 클래스 앞에 패키지명을 붙여줘야 한다.

 

ex. 예시

import java.sql.*;	//java.sql.Data
import.java.util.*;	//data.util.Data

public class ImportTest {
	public static void main(String[] args) {
    	java.util.Date today = new java.util.Date();
    }
}

Date가 sql클래스에서 온건지 util에서 온건지 알 수 없음.

그럴땐 클래스 앞에 패키지명을 java.util.Data와 같이 붙여 명시해줘야 한다.

 

3) 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만으로 참조가능

ex.예시

package ch7;

import static java.lang.System.out;
import static java.lang.Math.*;

public class superTest {
	public static void main(String[] args){
    	//System.out.println(Math.random());을 아래와 같이 변경
        out.println(random());
    	//System.out.println("Math.PI :"+Math.PI);를 아래와 같이 변경
        out.println("Math.PI :" + PI);
        }
}

 

728x90
반응형

'Java > JAVA의 정석_객체지향' 카테고리의 다른 글

다형성(polymorphism)  (0) 2022.11.01
제어자(modifier)  (0) 2022.10.31
패키지(package)  (0) 2022.10.31
Super VS Super()  (0) 2022.10.31
오버라이딩(Overriding)  (0) 2022.10.30
댓글
250x250
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday