패키지와 import 문은 자바 프로그래밍에서 모듈화와 네임스페이스 관리를 위한 중요한 개념입니다. 클래스와 인터페이스들을 논리적으로 그룹화하여 관리하며, 다양한 클래스를 충돌 없이 사용할 수 있는 구조를 제공합니다.
패키지의 개념
패키지는 관련된 클래스와 인터페이스들을 함께 묶어주는 개념입니다. 패키지를 사용하여 프로젝트를 논리적 단위로 분리하고, 클래스의 중복을 방지하며, 코드의 가독성을 높이는 데 도움을 줍니다.
패캐지의 선언
package com.example.myproject;
public class MyClass {
// 클래스 내용
}
- com.example.myproject는 패키지의 이름이며, 도메인 이름을 역순으로 사용하여 충돌을 피하고 의미 있는 구조를 생성하는 것이 관례입니다.
import의 개념
패키지 내의 클래스나 인터페이스를 다른 클래스에서 사용하기 위해 선언하는 것입니다. 패키지 내의 클래스를 직접 참조할 수 있도록 해주며, 클래스 이름을 축약해서 사용할 수 있습니다.
import의 선언
import com.example.myproject.MyClass; // 직접 참조
import com.example.myproject // 클래스 이름 축약 참조
public class AnotherClass {
public void someMethod() {
MyClass myObject = new MyClass();
// 메서드 로직
}
}
이를 통해 패키지 내의 클래스를 직접적으로 참조하고 활용할 수 있습니다.
import 문의 와일드카드와 정적 import
와일드카드(*)를 사용하여 패키지 내의 모든 클래스를 import 할 수 있습니다. 또한 정적 import를 통해 클래스의 정적 멤버를 클래스 이름 없이 직접 사용할 수 있습니다. 이를 통해 코드의 가독성을 높이고 불필요한 클래스 이름을 줄일 수 있습니다.
import 문의 와일드카드와 정적 import 예제
package com.example.myproject;
public class MathUtil {
public static int add(int a, int b) {
return a + b;
}
public static int subtract(int a, int b) {
return a - b;
}
}
package com.example.anotherproject;
import com.example.myproject.*; // 와일드카드(*)를 사용하여 모든 클래스 import
import static com.example.myproject.MathUtil.*; // 정적 import을 사용하여 MathUtil의 정적 멤버 import
public class AnotherClass {
public static void main(String[] args) {
int result1 = MathUtil.add(10, 5); // 와일드카드(*)로 import한 클래스 사용
int result2 = subtract(20, 8); // 정적 import으로 import한 메서드 사용
System.out.println("Result 1: " + result1);
System.out.println("Result 2: " + result2);
}
}
패키지와 import 문의 장점
1.네임스페이스 분리
패키지를 사용하여 클래스의 이름 충돌을 방지하고, 서로 다른 모듈 간에 동일한 클래스 이름을 사용할 수 있도록 합니다.
2. 모듈화와 가독성
관련된 클래스를 패키지로 묶어 모듈화하고, import 문을 사용하여 필요한 클래스를 참조함으로써 코드의 가독성을 높입니다.
'JAVA > 자바 기본 문법' 카테고리의 다른 글
[JAVA] 변수 선언과 초기화 (0) | 2023.08.09 |
---|---|
[JAVA] 레퍼런스 데이터 타입(참조 타입) (0) | 2023.08.09 |
[JAVA] 기본 데이터 타입 (0) | 2023.08.09 |
[JAVA] main 메서드와 프로그램 실행 (0) | 2023.08.09 |
[JAVA] 클래스 선언과 구조 (0) | 2023.08.09 |