bdfgdfg

package와 import 본문

웹프로그래밍/Java

package와 import

marmelo12 2023. 7. 26. 12:57
반응형

패키지(package)

패키지는 클래스의 묶음. 패키지에는 클래스,인터페이스를 포함하며 서로 관련된 클래스들 끼리 그룹단위로 묶어 클래스를 효율적으로 관리할 수 있다.

또한 같은 이름의 클래스라도 서로 다른 패키지에 존재할 수 있어서 자신만의 패키지 체계를 유지하면서 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다.

클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리임.

 

사실 클래스의 실제이름(full name)은  패키지명을 포함한 것.

 -> ex) String클래스의 실제 이름은 java.lang.String. 즉 java.lang패키지에 속한 String 클래스.

즉 java.lang.String클래스는 물리적으로 java 디렉토리의 서브 디렉토리인 lang에 속한 String.class파일인 것.

 

패키지를 선언하는 방법은 다음과 같다.

package 패키지명;

패키지명은 대소문자를 허용하지만 클래스와 구분을 위해 소문자로 이름을 짓는것을 원칙으로 함.

모든 클래스는 하나의 패키지에 포함되어야 하지만 이때까지 패키지를 선언하지 않고도 코드 작성이 가능했던 이유는 기본적으로 이름없는 패키지(unnamed package)덕분.

 

즉 이때까지 소스파일에 자신이 속할 패키지를 지정하지 않은 클래스는 자동적으로 이름 없는 패키지에 속했음.

 -> 큰 프로젝트나 java API를 작성하는 경우 미리 패키지를 구성해서 적용해야한다.

 

import문

소스코드를 작성할 때 다른 패키지의 클래스를 사용하려면 패키지명이 포함된 클래스 이름을 사용해야 한다.

다만 매번 java.lang.String과 같이 접근하면 불편하기에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 패키지명을 생략할 수 있다.

 

import문 선언법

import 패키지명.클래스명; 해당 패키지의 클래스를 import
import 패키지명.*; 해당 패키지의 모든 클래스를 import

*를 하면 컴파일러는 해당 패키지에 일치하는 클래스이름을 찾아야 하는 수고를 하지만, 실제 실행속도(성능)에는 영향이 없다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
Comments