클래스에는 다른 클래스가 자체 멤버 또는 메서드의 로컬 변수로 선언한 개체가 필요할 수 있습니다. 두 클래스가 동일한 패키지에 있으면 문제가 없습니다. import 문을 사용해야 합니다.
클래스 라이브러리에서 클래스 가져오기
import 문을 사용하여 패키지에 클래스를 도입합니다. 소스 파일을 작성할 때 클래스를 직접 작성하는 것 외에도 Java에서 제공하는 여러 클래스를 사용해야 하는 경우가 많습니다. 이러한 클래스는 다른 패키지에 있을 수 있습니다.
Java에서 제공하는 클래스를 사용하려면 import 문을 사용하여 패키지에 클래스를 도입할 수 있습니다. Java 소스 프로그램에는 import 문이 여러 개 있을 수 있으며, package 문(package 문이 있는 경우)과 소스 파일의 클래스 정의 사이에 작성해야 합니다. Java는 약 130개의 패키지를 제공합니다.
예를 들어:
java.lang에는 모든 기본 언어 클래스가 포함되어 있습니다.
java.io에는 모든 입력 및 출력 클래스가 포함되어 있습니다.
java.util에는 유틸리티 클래스가 포함되어 있습니다.
java.sql에는 데이터베이스 운영을 위한 클래스가 포함되어 있습니다.
java.net에는 네트워크 기능을 구현하는 모든 클래스가 포함되어 있습니다.
패키지의 모든 클래스를 소개하려면 와일드카드 기호 별표(*)를 대신 사용할 수 있습니다. 예를 들면 다음과 같습니다.
importjava.util.*;//java.util 패키지의 모든 클래스 도입을 나타냅니다. importjava.util.Date;//java.util 패키지의 Date 클래스 도입을 나타냅니다.
사용자 정의 패키지에서 클래스 가져오기
사용자 프로그램은 import 문을 사용하여 클래스가 아닌 라이브러리에 패키지 이름이 있는 클래스를 도입할 수도 있습니다. 예를 들면 다음과 같습니다.
importtom.jiafei.*;
자신의 프로그램이 tom.jiafei 패키지의 클래스를 사용할 수 있도록 하려면 사용자는 클래스 경로에서 tom.jiafei 패키지의 위치를 지정할 수 있습니다. tom.jiafei 패키지의 위치는 C:1000입니다. 이는 패키지 이름이 tom.jiafei인 클래스입니다. 바이트코드는 C:1000tomjiafei 디렉터리에 저장됩니다. 사용자는 클래스 경로 값을 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
setclasspath=C:jdk1.6jrelibrt.jar;.;C:1000/*는 C:1000 디렉터리의 이름 없는 패키지 클래스를 로드할 수 있고 C:의 하위 디렉터리를 로드할 수 있음을 의미합니다. 1000 디렉터리를 패키지 이름으로 사용하여 사용할 수 있습니다 */
사용자가 클래스 경로 값을 업데이트하지 않으려면 사용자 프로그램이 있는 디렉터리에 패키지에 해당하는 하위 디렉터리 구조를 생성하면 됩니다.
예를 들어, 사용자 프로그램의 특정 클래스가 위치한 디렉터리는 C:2000입니다. 이 클래스가 import 문을 사용하여 tom.jiafei 패키지의 클래스를 소개하려는 경우 디렉터리 구조 C:2000을 만듭니다. 패키지 이름을 기반으로 하는 tomjiafei 기본 클래스 경로 값은 다음과 같으므로 클래스 경로 값을 수정할 필요가 없습니다.
C:jdk1.6jrelibrt.jar;.;/* ".;"은 애플리케이션의 현재 디렉터리에 있는 이름 없는 패키지 클래스를 로드할 수 있고 현재 디렉터리 아래의 하위 디렉터리를 사용할 수 있음을 의미합니다. 패키지 이름으로* /