Java - Package(패키지)

컴퓨터/Java

728x90
반응형

Package(패키지)란?

Java에서는 패키지란 많은 클래스들을 보관하기 위해 제공되는 시스템입니다. 수많은 클래스들을 구분 지어 필요한 시점에 효율적으로 꺼내 사용하기 위해 만든 시스템으로, 소스코드들을 보관하고 사용하기 쉽게 만들어 줍니다.

 

 

왜 사용하는가?

작은 규모의 프로젝트(프로그램을 만드는 행위)의 경우 패키지의 중요성을 느끼지 못할 수도 있습니다. 하지만 규모가 커지면 커질수록 프로젝트를 진행하는 프로그래머가 많으면 많을수록 이 패키지의 중요성과 효용 또한 증가하게 됩니다.

 

만약 어떠한 프로젝트를 하는 곳에서 5명의 프로그래머가 각각 프로그래밍을 해서 클래스들을 만들어 하나의 공간에 합친다고 가정해 본다면, 중복되는 이름 그리고 어떤 카테고리의 어떤 개발자가 담당을 했는지 찾는 일을 쉽지 않을 것입니다. 이런 문제점들을 패키지 시스템을 사용하며 극복할 수 있게 됩니다.

 

패키지는 클래스의 경로를 표현합니다.

우리가 패키지 아래에 클래스를 만들게 되면 그 클래스는 아래와 같은 구조로 구성이 됩니다.

패키지명.클래스명

이렇게 되면 다양한 클래스들을 큰 패키 지명이라는 카테고리 안에 분류를 할 수 있게 됩니다.

 

 

사용 예시

만약 3가지 패키지에 동일한 이름이 있는 클래스라고 가정해 보도록 합시다.

package packagetestA;
public class Testclass{
	System.out.println("A패키지");
}
package packagetestB;
public class Testclass{
	System.out.println("B패키지");
}
package packagetestC;
public class Testclass{
	System.out.println("C패키지");
}

위와 같이 각각의 패키지에 포함된 클래스 Testclass는 이름은 같지만 기능은 다릅니다.  이 클래스들을 패키지 시스템을 적용하여 하나의 프로젝트 안에 넣고 사용해도 패키지가 클래스의 위치를 정의해주기 때문에 오류가 발생하지 않습니다.

 

그렇다면 어떠한 소스코드에서 packagetestB의 Testclass를 사용하고 싶다면 어떻게 할까요

package main;

import  packagetestC.Testclass;

위처럼 import를 통하여 사용하고자 하는 패키지와 클래스명을 추가하여 사용할 수 있습니다.

 

패키지 전체를 사용하고 싶다면 아래와 같이 import 합니다.

package main;

import  packagetestC.*;

 

우리가 사용하고 있는 다양한 메서드들도 이미 패키징이 되어있다

우리가 기본적인 Java에서 메서드들을 호출하고 객체를 생성하기 위해 import를 하는 것도 다른 패키지에서 클래스를 불러온다는 것을 유추할 수 있습니다.

 

예를 들어 Scanner클래스를 사용하기 위해 아래와 같이 import를 한다고 가정합시다.

import java.util.Scanner;

이 경우  java라는 패키지 안의 util이라는 패키지 안에 Scanner라는 클래스를 사용한다는 것을 유추할 수 있습니다.

상위패키지.하위패키지.클래스

 

이처럼 Java에서 패키지의 구조를 통해 효율적으로 클래스를 사용하고 불러올 수 있습니다.

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :