패키지 (Package)

Mixer·2022년 5월 12일
0
post-thumbnail

패키지 🔥

패키지란 ?
클래스와 인터페이스의 묶음의 집합을 말한다.

서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 더욱 효율적이게 관리할 수 있게 한다.
그리고, 대규모 프로젝트나 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌문제까지도 패키지를 이용하면 피할 수 있다.

자바에선 패키지는 물리적으로 하나의 디렉토리 🗂 를 뜻한다.
그래서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉토리에 포함되고 있다.

이렇게 패키지는 다른 패키지를 포함할 수 있으며, 디렉토리의 계층 구조는 . 으로 구분된다.

앞에 공부하면서 볼 수 있는 String 클랫의 패키지이다.

java.lang.String

// java.lang 패키지에 속한 클래스라는것을 알수있다.

패키지 선언

package 패키지이름;

// 예제와 같은 명령문을 인터페이스의 소스 파일에 추가하면 된다.
이때 패키지 이름엔 패키지의 경로까지 포함한 풀 네임을 명시해야 한다.

이름 없는 패키지(unnammed package)

자바의 모든 클래스는 반드시 하나 이상의 패키지에 포함되어야 한다.
만약 소스 파일에 어떠한 패키지의 선언도 포함되어 있지않다면, 기본적으로 이름 없는 패키지에 포함해 자바 컴파일러가 컴파일한다.
결과적으로 패키지를 명시하지 않은 모든 클래스와 인터페이스는 모두 같은 패키지에 포함된다.

import 문

위 처럼 선언한 패키지에 속한 클래스를 다른 파일에서 사용하기 위해선 클래스 이름 앞에 패키지의 경로까지 포함한 풀네임을 명시해 사용하면 된다.
그치만 클래스를 사용하려고 할때마다 이렇게 긴 이름을 매번 사용하는건 비효율적으로,
자바에서 제공하는 import 키워드가 있다.

import 문의 선언

import 패키지이름.클래스이름;
import 패키지이름.*;

import 패키지이름.클래스이름; 방법은 해당 패키지의 특정 클래스만 사용하려할때 사용한다.
import 패키지이름.*; 방법은 해당 패키지의 모든 클래스를 클래스 이름만으로 사용하려할때 사용한다.

import 문의 특징

import문을 선언할때 *을 사용하는 것이 해당 패키지의 포함된 다른 모든 하위 패키지의 클래스까지 포함해주는것은 아니다.

import java.awt.*;
import java.util.*;

두 import문을 하나의 import문으론 표현할 수 없다.

import java.*;   // 틀린 예제

⚑ 가장 많이 사용되는 java.lang 패키지는 별도의 import문 사용없이 클래스 이름만으로도 사용할 수 있다.

profile
Minthug'life

0개의 댓글