java

[java/기본] package와 import

tea-tea 2024. 4. 20. 18:42

package


프로젝트 파일을 열어서보면, 패키지는 그냥 폴더처럼 보인다.

따라서 일반적인 폴더처럼 파일의 그룹화 용도로 사용된다.

단, java에서 패키지는 프로젝트 내 파일들을 독립시키는데 사용된다.

예컨대, 접근 제한자를 통해서 다른 패키지 간에 접근을 불가능하게 만드는 것이 가능하다.

 

java에서는 기본적으로 동일한 클래스명이 사용될 수 없다.

하지만, 서로 다른 패키지에 있으면 가능하다.

이는 java에서 클래스를 "패키지경로.클래스명"의 형식으로 이해하기 때문이다.

 

문법

다른 패키지의 파일을 가져오기 위해서는 root폴더를 기준으로 상대경로를 작성한다.

아래 예시를 보자.

참고로, default package에 있는 파일은 다른 패키지에서 import가 안된다.

 

자기 파일의 패키지 위치 선언

package Lotto;
import java.util.ArrayList;

import Type.LottoType;



public class LottoGame {

}

 

외부 패키지의 파일 사용

import Lotto.LottoGame;

public class Main {
public static void main(String[] args) {
	LottoGame lottoGame =new LottoGame("charchar");
	}
}

 

심화

패키지는 엄밀히 말해서 폴더 경로를 다른 이름으로 매핑하여서 외부에서 접근할 때 사용한다.

즉, 디렉토리 구조를 매핑하는 선언 키워드로, 컴파일러에서 사용된다.

 

패키지의 경로는 일반적으로  경로와 동일하게 설정하는 걸 추천하며

도메인을 역순으로 계층화하는 게 일반적이다.

예컨대, 사이트 url이 charchar.com이라면 com/charchar 같은 방식이다.

 

lower case로 지정하는 게 일반적이다.

 

import


다른 패키지에 있는 클래스나 인터페이스 등을 가져올 때 사용한다.

 

예시

import java.util.ArrayList;

import Lotto.LottoGame;

public class Main {
public static void main(String[] args) {
	LottoGame lottoGame =new LottoGame("charchar");
	
	ArrayList<E>
	}
}

 

형식

// 기본 작성 방식
//import <<패키지 경로>>.<<클래스명>>

//package내 모든 클래스 import
import com.java.back.*;

//import를 안 쓰는 경우
//가독성 문제로 거의 사용하지 않음
com.java.back.Ex1 a = new com.java.back.Ex1();

 

 

 

참고 자료

https://velog.io/@redgem92/Java-%ED%8C%A8%ED%82%A4%EC%A7%80%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-%EC%95%8C%EC%95%84%EB%B4%90%EC%9A%94

 

 

https://velog.io/@janeljs/eclipse-shortcuts