1. 패키지
- 자바에서는 클래스를 체계적으로 관리하기 위해 패키지를 사용합니다.
- 패키지의 물리적인 형태는 파일 시스템의 폴더
- 패키지는 단순히 파일 시스템의 폴더 기능만 하는 것이 아니라 클래스의 일부분
- 클래스만 따로 복사해서 다른 곳으로 이동하면 클래스는 사용할 수 없습니다.
- 클래스를 이동할 경우에는 패키지 전체를 이동시켜야 합니다.
패키지의 역할
- 패키지는 클래스를 유일하게 만들어주는 식별자 역할
- 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식합니다
- 클래스의 전체 이름 = "패키지명+클래스명"
- 상위패키지.하위패키지.클래스
2. 패키지 선언
package 상위패키지.하위패키지;
- 패키지는 클래스를 컴파일하는 과정에서 자동적으로 생성되는 폴더
- 클래스명은 모두 소문자로 작성하는 것이 관례
- 여러 팀이나 여러 회사가 참여하는 프로젝트의 경우 패키지 이름의 중복을 피하기 위하여 팀 이름 혹은 회사의 이름으로 패키지를 생성합니다.
예시
A 클래스가 com.veneas에 속해 있다면
A 클래스의 전체 이름 → com.veneas.A
실제 파일 시스템 → com\veneas\A.class
package com.veneas.A
public class A {
}
3. import 문
같은 패키지에 속하는 클래스들은 아무런 조건 없이 다른 클래스를 사용할 수 있지만
다른 패키지에 속하는 클래스를 사용하려면 특별한 방법을 사용해야 합니다.
방법
1) 패키지와 클래스를 모두 기술
package com.one;
public class A {
}
package com.one;
public class B {
}
public class Main {
public static void main(String[] args) {
// 패키지와 클래스 기술
com.one.A a = new com.one.A();
com.one.B b = new com.one.B();
}
}
2) import 문 사용
// import 문 사용
import com.one.A;
import com.one.B;
// *
import com.one.*;
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new B();
}
}
import 문
- "*"는 패키지에 속하는 모든 클래스들을 의미합니다.
- import문의 개수는 제한이 없습니다.
- 서로 다른 패키지에 동일한 클래스 이름이 존재하고, 두 패키지가 모두 import 되어 있을 경우 패키지와 클래스를 모두 기술하여 사용해야 합니다.
주의할 점은 import문으로 지정된 패키지의 하위 패키지는 import 대상이 아닙니다.
package com.one;
public class A {
}
package com.one;
public class B {
}
package com.one.two;
public class C {
}
// *
import com.one.*;
// 하위 패키지는 따로 import 해줘야 함
import com.one.two.*;
public class Main {
public static void main(String[] args) {
A a = new A();
B b = new B();
C c = new C();
}
}
'Backend > 객체 지향 프로그래밍' 카테고리의 다른 글
[Java] 객체의 무결성 보호 (Getter, Setter 메소드) (0) | 2022.04.15 |
---|---|
[Java] 접근 제한자 (Access Modifier) (0) | 2022.04.14 |
[Java] 상수 (final 필드) (0) | 2022.04.12 |
[Java] 단 하나의 객체만 생성 (싱글톤 패턴, Singleton pattern) (0) | 2022.04.10 |
[Java] 정적 멤버 (0) | 2022.04.09 |