학습할 것 (필수)

Package 키워드

타입(클래스, 인터페이스, 이넘, 어노테이션)을 쉽게 찾고 쓰기위해, 파일명때문에 발생하는 충돌을 막기위해, 또 접근을 제한하기 위해 사용하는 것이 패키지이다. 한 패키지 안에 비슷한 속성을 띄는 타입들을 그룹지어 넣는다. 쉽게 말해 폴더시스템을 생각하면 된다. 하위패키지는 도트로 구분한다.

패키지는 크게 자바 자체에 내장되어있는 빌트인 패키지와 사용자가 직접 만들어서 쓰는 user-defined 패키지로 나눌 수 있다. 빌트인 패키지는 java로 시작하고 커스텀 패키지는 java로 시작하는 패키지를 만들어서는 안된다. 가장 기본적인, 자주 쓰이는 java.lang의 경우는 따로 불러오지(import) 않아도 자바가 알아서 불러와준다.

모든 클래스에는 정의된 클래스이름과 패키지 이름이 있고 이 모두를 합쳐줘야 한 클래스르 표현할 수 있다. 이를 FQCN, Fully Qualified Class Name이라고 한다(java.lang.String).

package키워드는 클래스를 어떤 패키지를 지정할 때 사용한다. 예를 들어 Rabbit이라는 클래스를 만들고 그 클래스를 animal이라는 패키지 내에 지정하고싶으면 아래와 같이 선언하면 된다.

package com.whiteShip.animal;

public class Rabbit {
  // 클래스 구현
}

FQCN으로 표현하면 com.whiteship.animal.Rabbit이 되겠다.

import 키워드

import 패키지명.클래스명(FQCN에 따른 클래스표현)은 다른 패키지 안의 클래스를 불러와서 사용하고 싶을 때, 패키지선언 다음으로 써주는 형식으로 한다.

package com.whiteShip.app; // 해당 클래스의 패키지

import com.whiteShip.animal.Rabbit; // 다른 패키지 안의 클래스 불러오기

public class Zoo {
  Rabbit rabbit = new Rabbit();
}

빌트인이던 커스텀이던 위에서 언급한 java.lang을 제외하고 같은 패키지 안에 있지 않는 이상 이 임포트문을 통해 불러와야 사용할 수 있다. IDE를 이용하면 메서드명이나 클래스타입을 지정하면 알아서 불러와주기도 한다.

한 패키지 안에 선언된 모든 타입을 불러올 때에는 import 패키지명.*로 불러올 수 있고 static 멤버 또한 이렇게 임포트가 가능하다.

클래스패스