[Java] package와 import

Package 와 Import

 


Package 


클래스의 묶음이며 폴더의 개념과 같다.

서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다.

 

같은 이름의 클래스라도 서로 다른 패키지에 존재하는 이 가능하다.

 

다른 개발자가 만든 클래스 라이브러리와 충돌되는것을 막을 수 있다.

단순히 클래스명으로만 클래스를 구분했지만

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

 

예를 들어

String클래스의 패키지명을 포함한 이름은 java.lang.String이다.


 



Package의 선언

 

package 패키지명;


  • 선언문은 반드시 소스파일에서 주석과 공백을 제외한 첫번째 문장이어야 한다.

  • 하나의 소스파일에는 단 한번만 선언될 수 있다.

  • 패키지는 점(.)을 구분자로 하여 계층 구조로 구성할 수 있다.

  • 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리이다.

  • 패키지명은 대소문자를 모두 허용하지만,

    클래스명과 쉽게 구분하기 위해서 소문자로 하는것을 원칙으로 한다.

  • 모든 클래스는 반드시 하나의 패키지에 포함되어야 한다.



 



Import

 

참고.

import문은 프로그램의 성능에 전혀 영향을 미치지 않는다. import문을 많이 사용하면 컴파일 시간이 아주 조금 더 거릴 뿐.


import 패키지명.클래스명 ;

또는

import 패키지명.*;



'패키지명.*' 을 사용하면, 지정된 패키지에 속하는 모든 클래스를 패키지명 없이 사용할 수 있다.

 

클래스 이름을 지정해주는 대신 '*'을 사용하면, 컴파일러는 해당 패키지에서 일치하는 클래스이름을 찾아야하는 수고를 더 해야 할 것이다. 단지 그뿐이니까 실행 시 성능의 차이는 전혀 없다.! 걱정 끝!

 

단, 하위 패키지의 클래스까지 포함하는 것은 아니라는 것!


EX>

 

import java.util.*;

import java.text.*;

이걸

import java.*;

 

한다고 해서 되는게 아니라는 말씀.!