관리 메뉴

오버플로

[Java] import / static import 본문

Java

[Java] import / static import

NACO 2021. 8. 5. 22:29

1. import

- 클래스가 존재하는 패키지 외부에 다른 클래스를 사용할 때

- package선언과 class 선언 사이에 필요한 만큼 정의하여 사용

- JDK1.5에서부터는 static import 추가

- java.lang 패키지에 포함되어 있는 class는 따로 import가 필요 없음

 

- 주의!) 패키지가 다르나 같은 이름의 클래스, 인터페이스가 존재한다면 두 클래스 중 하나만 import 받을 수 있음

   => full path로 해결 가능

        - 클래스를 사용할 때 패키지를 기술하여 사용하는 것

        - 문법) 패키지명.클래스명 객체명 =

        - Ex)  Date d = null; // java.util package의 Date (얜 import한 Date)

                java.sql.Date d1 = null; // java.sql package의 Date도 사용할 때(full path 사용)

 

- 문법)

import 패키지명.*; => 다른 패키지내의 모든 클래스를 사용할 때 (Java에서는 권장하지 않음)

import 패키지명.클래스명; => 다른 패키지내의 특정 클래스만 사용할 때

 

2. static import

- 다른 클래스에 존재하는 Constant나 static method를 클래스에 존재하는 것처럼 사용할 때

- 기본 import에서 더 확장된(들어간) 개념

- import 안 해도 됐던 java.lang 패키지도 static import 사용하려면 선언이 필요함!

 

- 주의! 패키지가 다르나 같은 이름의  Constant나 static method가 존재한다면 하나만 import 받을 수 있음

 

- 문법)

1) Constant 사용할 때 : import static 패키지명.클래스명.상수명;

2) static method 사용할 때 : import static 패키지명.클래스명.method

                                     (주의! method 기호()를 기술하지 않음) 

 

 


# 오늘의 코딩 #

- static import를 사용해보자

package test;

import static java.lang.Integer.MAX_VALUE;
import static java.lang.Integer.parseInt;
import static java.lang.Math.random;
//import static java.lnag.Byte.MAX_VALUE; // 같은 이름의 Constant는 하나만 받을 수 있음

/**
 * 다른 클래스의 상수나 static method를 내 클래스에 존재하는 것처럼 사용할 때
 * 
 * @author user
 */
public class TestStaticImport {

	public static void main(String[] args) {
		//Interger의 Constant와 method 내 것처럼 사용
		System.out.println(MAX_VALUE);
		
		String s = "7";
		String s1 = "28";
		int i = parseInt(s);
		int j = parseInt(s1);
		System.out.println(i + "/" + j);

		// random()을 내 클래스에 존재하는 것처럼 사용
		System.out.println((int) (random() * 100 + 1));

	}// main
}// class

 

# 출력 결과 #

2147483647
7/28
98

 

 

 

'Java' 카테고리의 다른 글

[Java] JCF - List, Set, Map  (0) 2021.08.09
[Java] DecimalFormat Class  (0) 2021.08.06
[Java] Calendar Class(2)  (0) 2021.08.03
[Java] Calendar Class / VO Class  (0) 2021.08.02
[Java] Date Class / SimpleDateFormat Class / Locale Class  (0) 2021.08.01
Comments