Programming/Java

[Java] package와 import

kmindev 2023. 10. 16. 09:32

남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.

 

1. package란?

  • 서로 관련된 클래스들끼리 그룹 단위를 package로 묶어서 효율적으로 관리
  • 클래스의 이름이 동일해도 서로 다른 package이면 다른 클래스로 인식
  • package는 물리적으로 하나의 디렉토리이며, package에 다른 package를 포함시킬 수 있다.

 

2. package 네이밍 규칙

  • pacakge 명은 소문자로 사용하는 것이 원칙
  • java로 시작하는 패키지 금지(자바 표준 api에서만사용)
  • 자바 예약어 금지

패키지는 .(dot)로 구분 한다.

package 상위패키지명.하위패키지명

package org.example.pck;

 

 

3. import문

  • 다른 패키지의 클래스를 사용할 경우 패키지명과 클래스를 모두 기술해야 사용할 수 있다.
  • import 문을 사용해서 패키지명을 생략할 수 있다.
package org.example.pck2;
public class Class2 {
    org.example.pck1.Class1 class1 = new org.example.pck1.Class1();
}

package org.example.pck2;

import org.example.pck1.Class1; // import 문을 사용해서 패키지명을 생략할 수 있다.

public class Class2 {
    Class1 class1 = new Class1();
}

 

4. static import문

  • import문은 패키지명을 생략할 수 있다.
  • static import문을 사용하면 static 멤버를 호출할 때 클래스명을 생략할 수 있다.
package org.example.pck1;

public class Class1 {
    public static String name = "홍길동";
}

package org.example.pck2;

import org.example.pck1.Class1;

public class Class2 {

    public static void main(String[] args) {
        Class1.name = "이순신";
    }
}

package org.example.pck2;

import static org.example.pck1.Class1.name;

public class Class2 {

    public static void main(String[] args) {
        name = "이순신";
    }
}

  • static 멤버를 사용하려면 static 멤버앞에 클래스명을 붙혀줘야 한다.
  • import static문을 사용하면 생략이 가능하다.