충분히 쌓여가는
import 문, static import문 본문
import 문
클래스를 사용할 때 패키지 이름을 생략할 수 있다
컴파일러에게 클래스가 속한 패키지를 알려준다
Eclipse: auto import 문 단축키
윈도우: ctrl + shift + o
맥: cmd + shift + o
IntelliJ: auto import 문 단축키
자동으로 만들어줌
맥: opt + enter
해당 코드에서 import 문을 사용하면 java.util 부분을 생략할 수 있다
java.lang 패키지(기본 패키지)의 클래스는 import 하지 않고도 사용할 수 있다
String, Object, System, Thread ...
(*은 해당 패키지에 있는 모든 클래스를 의미함)
// import java.lang.*; // 생략 가능
class importTest {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
import 문 선언 방법
import 패키지명.클래스명;
// or
import 패키지명.*;
import 문은 package 문과 클래스 선언의 사이에 선언한다
package OOP; // 패키지 선언
import java.text.SimpleDateFormat; // import 문
import java.util.Date; // import 문
//import java.util.*; // import 문
public class PackageTest { // 클래스 정의
public static void main(String[] args) {
Date today = new Date();
// java.util.Date today = new java.util.Date();
SimpleDateFormat date = new SimpleDateFormat("yyyy/mm/dd");
}
}
import 문은 컴파일 시에 처리되므로 프로그램의 성능에 영향이 없다
따라서 import 문을 여러개 작성할 필요없이 *로 하나만 작성해도 무관하다
(*은 해당 패키지에 있는 모든 클래스를 의미함)
두 코드는 서로 의미가 다르다
(*은 해당 패키지에 있는 모든 클래스를 의미함)
import java.*; 의 의미는 java 패키지의 모든 클래스를 의미한다(즉, 패키지는 포함되지 않는다)
이름이 같은 클래스가 속한 두 패키지를 import 할 때는 클래스 앞에 패키지명을 붙여줘야 한다
해당 코드에서 Date() 클래스가 sql 패키지인지 util 패키지인지 알 수 없다
이럴땐 클래스 앞에 패키지 이름을 적어줘야한다
import java.sql.*; // java.sql.Date
import java.util.*; // java.util.Date
public class ImportTest {
public static void main(String[] args) {
java.util.Date today = new java.util.Date();
}
}
static import 문
코드를 짧게 만들수 있다, 하지만 알아보지 못하는 경우도 생길 수 있기 때문에 필요할 때만 사용!
static 멤버를 사용할 때 클래스 이름을 생략할 수 있게 해준다
import static java.lang.Math.random; // Math.random()만, 괄호 붙이지 않는다
public class importTest {
public static void main(String[] args) {
System.out.println(random()); // 0.12846865401783958
}
}
import static java.lang.System.out; // System.out를 out만으로 참조가능
import static java.lang.Math.*; // Math 클래스의 모든 static 멤버
// import static java.lang.Math.random; // Math.random()만, 괄호 붙이지 않는다
public class importTest {
public static void main(String[] args) {
// System.out.println(Math.random());
out.println(random()); // 0.12440018531065256
// System.out.println(Math.PI);
out.println(PI); // 3.141592653589793
}
}
'Java > 객체지향' 카테고리의 다른 글
접근 제어자(access modifier) (0) | 2023.06.09 |
---|---|
제어자(modifier) (0) | 2023.06.08 |
패키지(package) (0) | 2023.06.08 |
생성자 super() (0) | 2023.06.07 |
참조변수 super (0) | 2023.06.07 |