관련 있는 클래스 또는 인터페이스들을 묶어서 패키지라고 하고 윈도우 폴더처럼 같은 패키지의 클래스는 같은 폴더에 있다.
자바프로그램이 패키지로 정의되어 있다면 그 프로그램은 반드시 패키지로 정한 폴더 내부에 있어야 한다.
클래스를 패키지 이름과 함께 계층적인 형태로 사용함 으로서 다른 그룹에 속한 클래스와 발생 할 수 있는 이름 충돌 방지한다. (서로 다른 패키지라도 같은 이름의 클래스 존재 가능, java.util.Date, java.sql.Date)
name space 부여(닷넷에서는 네임스페이스라고 하죠 )
자바에서 사용되는 API들은 대부분 package화 되어 제공되며 개발자는 이 패키지내의 클래스들을 import하여 이용할 수 있다.
클래스의 이름은 기본적으로 Package이름.클래스이름 이다.
패키지내의 클래스와 인터페이스를 사용하기 위해서는 패키지이름을 명시하거나 import 문장을 이용하여 package 이름을 생략하여
클래스, 인터페이스 이름만 사용할 수 있다.
특정 클래스만 import 하는 경우 : import java.util.Date;
패키지 내의 모든 클래스를 import하는 경우 : import java.util.*;
import 하는 경우 부 패키지는 import 되지 않는다.(해당 폴더의 클래스만 임포트되고 하위 폴더의 클래스는 임포트
안됨)
(java.awt, java.awt.event)
(java.awt, java.awt.event)
패키지 이름이 생략된 클래스, 인터페이스 이름을 컴파일러가 import 문장을 참조하여 패키지이름이 포함된 인터페이스나 클래스 이름으로
변환한다.
컴파일시 자바 컴파일러는 소스코드의 첫문장으로 import java.lang;이 자동 삽입된다.(그래서 System 클래스를 별도
임포트없이 사용했다.)
주로 domain 이름을 거꾸로 하여 사용하는 것이 관례다.
[예제]
import java.util.Date;
import java.util.Random;
// import java.util.*; // 위의 두 import문 대신 사용할 수 있지만 해당 패키지의 모든 클래스가 로드되므로 비추
// import java.lang.*; // 자바 컴파일러에 의해 자동 삽입된다.
import java.util.Random;
// import java.util.*; // 위의 두 import문 대신 사용할 수 있지만 해당 패키지의 모든 클래스가 로드되므로 비추
// import java.lang.*; // 자바 컴파일러에 의해 자동 삽입된다.
class ImplicitPack {
public static void main(String[] args) {
//컴파일하면 자동으로 클래스이름압ㅍ에 패키지명을 삽입한다.
//java.lang.System.out.println(new java.util.Date());
System.out.println(new Date());
public static void main(String[] args) {
//컴파일하면 자동으로 클래스이름압ㅍ에 패키지명을 삽입한다.
//java.lang.System.out.println(new java.util.Date());
System.out.println(new Date());
System.out.println(new Random().nextInt());
}
}
}
}
[개강임박강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[11/13]SQL초보에서실전전문가까지
[11/13]안드로이드개발자과정
[11/18]Spring3.X, MyBatis, Hibernate실무과정
[11/18]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/08]C#,ASP.NET마스터
[11/08]Spring3.X, MyBatis, Hibernate실무과정
[11/12]iPhone 하이브리드 앱 개발 실무과정
[11/14]JAVA&WEB프레임워크실무과정
[주말]
[11/09]C#,ASP.NET마스터
[11/09]JAVA&WEB프레임워크실무과정
[11/09]Spring3.X, MyBatis, Hibernate실무과정
[11/09]웹퍼블리싱 마스터
[11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구
[11/16]ASP.NET4.0 MVC 프로그래밍
[주간]
[11/13]SQL초보에서실전전문가까지
[11/13]안드로이드개발자과정
[11/18]Spring3.X, MyBatis, Hibernate실무과정
[11/18]iPhone 하이브리드 앱 개발 실무과정
[평일야간]
[11/08]C#,ASP.NET마스터
[11/08]Spring3.X, MyBatis, Hibernate실무과정
[11/12]iPhone 하이브리드 앱 개발 실무과정
[11/14]JAVA&WEB프레임워크실무과정
[주말]
[11/09]C#,ASP.NET마스터
[11/09]JAVA&WEB프레임워크실무과정
[11/09]Spring3.X, MyBatis, Hibernate실무과정
[11/09]웹퍼블리싱 마스터
[11/16]PL/SQL,오라클힌트,SQL튜닝,사례연구
[11/16]ASP.NET4.0 MVC 프로그래밍
댓글 없음:
댓글 쓰기