끝나지 않는 프로그래밍 일기


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

패키지에 관한 설명은 여기서 마치도록 하겠습니다. 부족한 설명이 있다 싶으시면 덧글로 달아주시면 감사하겠습니다. 수고하셨습니다.

다음 강좌는 추상 클래스에 대해서 공부합니다.