본문 바로가기
[김영한 자바 강좌] 정리/기본

[김영한의 실전 자바 (기본편)] 섹션5 - 패키지

by haeyoon 2024. 4. 30.

[코드]

 

package pack;

public class Data {
    public Data(){
        System.out.println("패키지 pack data 생성");
    }
}

pack 패키지에 포함

package pack.a;

public class User {
    public User(){
        System.out.println("패키지 pack.a 회원 생성");
    }
}

pack > a 패키지에 포함

 

[방법1] pack 패키지 안 PackageMain1클래스에서 각각 다른 두 클래스 호출하는 법

package pack;

public class PackageMain1 {
    public static void main(String[] args) {
        Data data = new Data(); //같은 패키지 안에 있다
        pack.a.User user = new pack.a.User(); // 다른 패키지 안에 있다
    }
}

 

[방법2] import를 사용한 덕분에 코드에서 패키지 명을 생략하고 쓸 수 있다

package pack;

import pack.a.User;

public class PackageMain2 {
    public static void main(String[] args) {
        Data data = new Data(); //같은 패키지 안에 있다
        User user = new User(); // 다른 패키지 안에 있다
    }
}

 


패키지 속 모든 클래스 import 하는 법

import pack.a.*;
//import pack.a.User;
//import pack.a.User2;

 

패키지는 다르지만 같은 이름의 클래스 import하는 경우

package pack;

import pack.a.User;

public class PackageMain3 {
    public static void main(String[] args) {
        User userA = new User();
        pack.b.User userB = new pack.b.User();
    }
}

 

둘 중에 하나는 이름 전체를 다 적어주어야 한다.

(pack.a 와 pack.b 모두 import할 수 없음)

 

 

 

패키지 규칙

 - (필수) 패키지 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다

 - (관례) 패키지 이름은 소문자를 사용한다

 - (관례) 패키지 이름 앞부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다 

      ex) com.company.myapp