1. 패키지(package)
- 비슷한 목적으로 생성된 클래스 파일들을 한곳에 모아 둔 폴더
- 1개의 프로젝트에 1개의 패키지를 생성할 수 있고, 여러 개의 패키지를 생성할 수도 있다.
- src 폴더의 하위 폴더에 위치
- 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일한 하위 폴더 생성
- 패키지 지정 x
- src 폴더 아래에 소스 파일이 바로 위치
- default package : 하위 폴더가 없음
- 패키지 지정 o
- 지정된 패키지 폴더가 src 폴더 아래에 생성
- 그 아래에 소스파일 위치
- 패키지의 영향으로 클래스가 저장되는 공간이 분리돼 클래스명의 충돌을 방지할 수 있음
ex) A회사 B회사 협업 프로젝트 - 2개의 회사가 서로 다른 패키지에 동일한 이름의 클래스를 작성
//A회사
pacakge abc.bcd;
public class Connect {
...
}
//B회사
pacakge bcd.cde;
public class Connect {
...
}
- A회사 Connect 클래스 경로 = abc.bcd.Connect
- B회사 Connect 클래스 경로 = bcd.cde Connect
- 서로 다른 패키지를 사용하면 그 안에 있는 클래스명이 같더라도 경로가 다르므로 충돌 문제가 발생하지 않음
2. 임포트(import)
- 다른 패키지 내의 클래스를 사용하기 위한 문법 요소
- 패키지 구문 다음에 위치
1) 방법 1: 클래스의 풀네임 사용
- 클래스의 풀네임
'패키지명.클래스명'
- 다른 패키지 내의 클래스에서 sec01_packageimport.common 패키지의 A 클레스 객체 생성
- A a = new A() (x)
- sec01_packageimport.common.common. A a =new sec01_packageimport.common.common. A() (o)
package sec01_packageimport.common;
public class A {
//다른 패키지에서 클래스를 사용하려면 반드시 public class로 선언돼야 함
public int m = 3;
public int n = 4;
public void print() {
System.out.println("임포트");
}
}
package sec01_packageimport.EX01_PackageImport_1;
public class PackageImport {
public static void main(String[] args) {
//객체 생성
// A a = new A() ; //오류
sec01_packageimport.common.A a = new sec01_packageimport.common.A();
//멤버 활용
System.out.println(a.m);
System.out.println(a.n);
a.print();
}
}
2) 방법 2 : 임포트 사용
- 'import 패키지명 클래스명'
- import sec01_packageimport.common.A 표기
package sec01_packageimport.EX02_PackageImport_2;
import sec01_packageimport.common.A;
public class packageImport_2 {
public static void main(String[] args) {
//객체 생성
A a = new A(); // 클래스 A를 임포트했으므로 A a = new A()로 객체 생성 가능
//멤버 활용 가능
System.out.println(a.m);
System.out.println(a.n);
a.print();
}
}
'Java > 문법' 카테고리의 다른 글
9-1장 접근 지정자 (0) | 2023.04.30 |
---|---|
8-2 장 외부 클래스 (0) | 2023.04.24 |
7-4장 this 키워드와 this() 메서드 (0) | 2023.04.24 |
7-3장 생성자 (0) | 2023.04.24 |
7-2장 메서드 (0) | 2023.04.24 |