1. 패키지(Package)
전 강좌에서 패키지란 '관련된 클래스 혹은 인터페이스들을 묶어놓은 상자와 같다.'라고 말한적이 있었습니다. 다음은, 패키지가 어떤 것이고 이런게 어떠한 특징을 가지고 있는지 간략히 정리해보았습니다.
● 클래스 들을 하나로 묶어놓은 것이다.
● 클래스 간의 이름 중복으로 발생하는 충돌을 막아준다.
● 클래스를 기능 별로 분류할수 있어 필요한 클래스의 식별이 용이하다.
그럼, 클래스 파일들을 패키지화 하려면 어떻게 해야할까요? 아래는 패키지의 선언 방법입니다.
package 패키지 이름/패키지 경로; // ex) package pack, package circle.pack
...
바로 package 키워드를 사용해보록 하죠.
package com.tutorial;
class Simple {
public static void main(String args[]) {
System.out.println("Hello java");
}
}
컴파일 시 옵션:
E:\공부자료>javac -d . Simple.java
(현재 디렉토리에 Simple.java 내에서 명시한 디렉토리를 자동으로 생성해줍니다. 'javac -d <패키지 생성 디렉토리> <컴파일 할 파일 이름>')
위 코드를 컴파일 시에 현재 디렉토리에 -d 옵션을 주게되면 지금 디렉토리에서 com/tutorial 경로에 클래스 파일이 생성되게 됩니다. 그럼 이렇게 패키지 선언방법을 알았으니, 선언한 패키지를 가져올때는 어떻게 해야 할까요?
2. 가져오기(Import)
이 경우에는 import 키워드를 사용합니다. 아래는 import 키워드의 사용 방법입니다.
패키지 내에서 하나의 클래스만 가져올 경우:
import 패키지 이름/패키지 경로.클래스 명; // ex) import com.tutorial.Simple
패키지 내에서 모든 클래스를 가져올 경우:
import 패키지 이름/패키지 경로.*; // ex) import com.tutorial.*
물론 import 키워드를 사용하여 우리가 선언한 패키지 내의 클래스를 가져올 수 있지만, 여기서는 자바의 기본 패키지를 가져와보도록 하겠습니다. 많이 사용되는 기본 패키지는 다음과 같습니다.
기본 패키지 |
설명 |
java.lang |
기본적인 클래스 제공 (자동으로 import) |
java.awt |
GUI에 관한 클래스 제공 |
java.io |
데이터 입출력에 관한 클래스 제공 |
java.util |
유용한 유틸리티 클래스 제공 |
java.net |
네트워크 관련 클래스 제공 |
java.text |
텍스트 관련 클래스 제공 |
java.sql |
데이터베이스 관련 클래스 제공 |
java.applet |
애플릿 구현에 필요한 클래스 제공 |
여기서, java.util 패키지 내에 들어있는 Random 클래스와 Data 클래스를 import 해보도록 합시다. (Random 클래스는 난수 생성을 다루는 클래스 이며, Data는 날짜와 시간 정보등을 다루는 클래스 입니다.)
아래 예제는 Date 클래스를 import하여 현재 날짜와 시간을 출력하는 예제입니다.
import java.util.Date;
class DateClass {
public static void main(String args[]) {
Date date = new Date();
System.out.println(date);
}
}
결과:
Tue Aug 21 00:00:07 KST 2012
이번에는 Random 클래스를 import하여 난수를 생성하는 예제입니다.
import java.util.Random;
class RandomClass {
public static void main(String args[]) {
Random random = new Random();
System.out.println(random.nextInt());
}
}
결과:
697758874
패키지에 관한 설명은 여기서 마치도록 하겠습니다. 부족한 설명이 있다 싶으시면 덧글로 달아주시면 감사하겠습니다. 수고하셨습니다.
다음 강좌는 추상 클래스에 대해서 공부합니다.
'프로그래밍 관련 > 자바/자바 스크립트' 카테고리의 다른 글
JAVA 강좌 21편. 인터페이스(Interface) (8) | 2012.08.23 |
---|---|
JAVA 강좌 20편. 추상 클래스(Abstract Class) (5) | 2012.08.21 |
JAVA 강좌 19편. 패키지(Package) (8) | 2012.08.21 |
JAVA 강좌 18편. 접근 지정자(Access Modifiers) (14) | 2012.08.19 |
JAVA 강좌 17편. 상속(Inheritance) (20) | 2012.08.16 |
JAVA 강좌 16편. 배열을 매개변수로 받는 메소드, 다차원 배열 (11) | 2012.08.13 |
감사합니다~
그러면 자바 기본패키지는 어디에 저장되어 있는 건가요? 한번 들여다보고싶은데..
openjdk7로 위의 예제를 컴파일했더니 컴파일까지는 됬는데 실행이 않되요.
엑시노아님 여기서 Import를 많이하면 할수록 컴파일 속도라던지 느려지는게 있나요??
Import를 여러번할때는 한 줄에 못하나요?
자바 공부하기 어려웠는데 쉬운 설명~ 좋은 예제 정말 감사합니다^^