하나의 클래스 안에서 같은 이름의 클래스들을 사용하기 위한 방법
package org.opentutorials.javatutorials.packages.example2;
public class B {
public static void main(String[] args) {
//클래스 A가 다른 패키지에 있기 때문에 로드 할 수 없다.
A a = new A();
}
}
이유 : 여기서 사용하려는 클래스 A와 B가 서로 다른 패키지에 소속되어 있기 때문이다.
문제 해결)
package org.opentutorials.javatutorials.packages.example2;
import org.opentutorials.javatutorials.packages.example1.A;
//import org.opentutorials.javatutorials.packages.example1.*;
// 만약 모든 클래스를 import 하고 싶으면 * 사용 ( * : 모든 )
public class B {
public static void main(String[] args) {
A a = new A();
}
}
서로 다른 패키지에 있는 클래스를 가져오려면 import를 통해서 다른 패키지의 클래스를 현재의 소스코드로 불러와야 한다
프로젝트 디렉터리의 구성
- src : 소스 코드가 들어있다.
- bin : 컴파일된 클래스 파일이 들어있다.
위와 같이 구분한 이유는 관리의 편의성을 위해
로드된 패키지들간의 중복
만약 2개 이상의 패키지를 import 할 때 패키지마다 같은 이름의 클래스가 있다면 에러 발생
ex )
package org.opentutorials.javatutorials.packages.example3;
import org.opentutorials.javatutorials.packages.example1.*;
import org.opentutorials.javatutorials.packages.example2.*;
public class D {
public static void main(String[] args) {
//example1 B클래스 존재
//example2 B클래스 존재
// 에러 발생
B b = new B();
}
}
해결 방법
package org.opentutorials.javatutorials.packages.example3;
import org.opentutorials.javatutorials.packages.example1.*;
import org.opentutorials.javatutorials.packages.example2.*;
public class D {
public static void main(String[] args) {
org.opentutorials.javatutorials.packages.example2.B b = new org.opentutorials.javatutorials.packages.example2.B();
// 직접 경로 지정
}
}
'Java' 카테고리의 다른 글
접근 제어자 (0) | 2023.03.08 |
---|---|
API와 API 문서 보는 법 (0) | 2023.03.08 |
클래스 패스 (0) | 2023.03.08 |
overloading (0) | 2023.03.08 |
overriding (0) | 2023.03.07 |