Java package와 import

Jinny·2022년 1월 27일
0

TIL

목록 보기
23/28
post-thumbnail

package와 import

소스파일 구성

package kh.academy; // package문

import java.util.Date; // import문

public class ImportTest { // 클래스 선언
	public ststic void main(String[] args) {

	}
}

package

서로 관련된 클래스 혹은 인터페이스의 묶음으로 폴더와 비슷하다.
패키지는 서브 패키지를 가질 수 있으며 ‘.’으로 구분한다.

패키지의 선언

소스파일 첫 번째 문장에 단 한 번 선언한다.
하나의 소스파일에 둘 이상의 클래스가 포함된 경우, 모두 같은 패키지에 속한다.

모든 클래스는 하나의 패키지에 속하며, 패키지가 선언되지 않은 클래스는 자동적으로 이름없는 패키지(default)에 속하게 된다.
ex) package java.util;

규칙

  1. 숫자로 시작할 수 없고 $, _를 제외한 특수문자 사용 불가
  2. java로 시작하는 패키지는 자바 표준 API에서만 사용되므로 사용 불가
  3. 관례적으로 모두 소문자로 작성
  4. 일반적으로 회사에서는 도메인이름으로 많이 작성함
  5. 관례적으로 도메인 이름은 역순으로 지정 후 마지막에 프로젝트 이름을 붙여줌
    ex) package kr.or.iei.project1

같은 패키지 내 클래스 사용
같은 패키지에 속한 클래스들은 조건 없이 다른 클래스를 사용 가능

다른 패키지 내 클래스 사용

  1. 패키지와 클래스명을 모두 적어 사용하는 방법
    형식 : 패키지명.클래스명.필드명
  2. import문 사용하는 방법

import

사용할 클래스가 속한 패키지를 지정하는데 사용한다.
import문을 사용하면 클래스를 사용할 때 패키지 명을 생략할 수 있다.
java.lang 패키지의 모든 클래스는 import를 하지 않고도 사용 가능하다.
ex) String, Object, System, ...

import문의 선언

import문은 패키지문과 클래스 선언 사이에 선언하며, 컴파일 시에 처리되므로 프로그램 성능에 영향을 주지 않는다.
지정된 패키지에 포함된 클래스는 import 가능하지만 서브 퍀지에 속한 모든 클래스까지는 불가능
ex) import java.util.Date;
import java.util.; // java.util 패키지 내의 모든 클래스(단, 서브클래스는 X)
import java.
; // 불가능

주의사항

이름이 같은 클래스가 속한 두 패키지를 import할 때는 클래스 앞에 패키지명을 붙여 구분해줘야 함

package kh.academy;

import java.sql.Date;

public class ImportTest {
	public static void main(String[] args) {
		java.util.Date today = new java.util.Date();
	}
}
profile
코린이

0개의 댓글