java package-qualified class name
2025. 1. 16. 18:11ㆍHigh Level Programming Language
Package-qualified class name은 자바 클래스의 전체 이름(fully qualified name)을 의미합니다. 이는 클래스 이름 앞에 해당 클래스가 속한 패키지 이름을 포함한 이름을 말합니다.
구조
<패키지 이름>.<클래스 이름>
예제
package com.example.demo;
public class HelloWorld {
public void sayHello() {
System.out.println("Hello, World!");
}
}
위 클래스의 package-qualified class name은 다음과 같습니다:
com.example.demo.HelloWorld
특징
고유성:
- 동일한 이름의 클래스가 여러 패키지에 존재할 수 있습니다.
- 예:
java.util.Date
와java.sql.Date
는 서로 다른 패키지에 속한 클래스입니다.java.util.Date
: 유틸리티 클래스.java.sql.Date
: 데이터베이스에서 사용하는 클래스.
패키지를 명시하지 않으면 기본 패키지 사용:
- 패키지를 선언하지 않은 경우, 기본 패키지(default package)로 간주됩니다. 그러나 이는 권장되지 않습니다.
사용 예시
1. 클래스 임포트 없이 직접 사용
public class Main {
public static void main(String[] args) {
com.example.demo.HelloWorld hello = new com.example.demo.HelloWorld();
hello.sayHello();
}
}
- 클래스의 패키지 이름을 명시적으로 지정해 사용.
2. 클래스 임포트 후 사용
import com.example.demo.HelloWorld;
public class Main {
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
hello.sayHello();
}
}
import
키워드를 사용해 패키지를 명시적으로 선언한 후 클래스 이름만 사용.
패키지-한정 클래스 이름의 용도
클래스의 고유 식별:
- 대규모 프로젝트에서는 동일한 이름의 클래스가 다른 패키지에 있을 수 있으므로 충돌을 방지합니다.
- 예:
com.companyA.project.ClassA
와com.companyB.project.ClassA
.
클래스 간 충돌 해결:
동일한 이름의 클래스를 두 개 이상 사용할 때, 패키지-한정 이름을 사용해 구분합니다.
import java.util.Date; import java.sql.Date; public class Main { public static void main(String[] args) { Date utilDate = new java.util.Date(); // java.util.Date Date sqlDate = new java.sql.Date(System.currentTimeMillis()); // java.sql.Date } }
클래스 참조의 명확성 제공:
- 패키지-한정 이름을 사용하면 해당 클래스가 어떤 패키지에 속하는지 명확히 알 수 있습니다.
패키지-한정 이름의 이점
- 코드 가독성 증가: 클래스의 출처를 쉽게 파악 가능.
- 모듈화 지원: 서로 다른 패키지로 나누어 코드를 조직화할 수 있음.
- 충돌 방지: 동일한 이름의 클래스 간 명확한 구분 가능.
관련 용어
- 패키지(package):
- 클래스와 인터페이스를 논리적으로 그룹화하여 조직화하는 방법.
- Default package:
package
선언이 없는 경우 사용되는 기본 패키지. 그러나 실무에서는 피하는 것이 좋음.
- Fully qualified name:
package-qualified class name
과 같은 뜻으로, 클래스 이름과 패키지 이름을 모두 포함한 이름.
'High Level Programming Language' 카테고리의 다른 글
Java Advanced Programming Quiz 문제 (0) | 2024.07.23 |
---|---|
Java Tutorials (0) | 2024.06.25 |
고급 프로그래밍 언어(High Level Programming Language) (0) | 2024.06.23 |
Semantics (0) | 2024.06.18 |
이클립스에서 main 메소드의 파라미터에 아규먼트를 전달하는 방법 (0) | 2024.05.30 |