반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인텔리제이
- 정규식
- 이클립스
- Eclipse
- 배열
- js
- 단위테스트
- list
- 테스트자동화
- javascript
- string
- 자바
- junit
- CSS
- Java
- json
- IntelliJ
- junit5
- input
- java테스트
- vscode
- Visual Studio Code
- HashMap
- 문자열
- 자바스크립트
- Array
- ArrayList
- math
- 자바문법
- html
Archives
- Today
- Total
어제 오늘 내일
[Java] 패키지(package)와 import 구조 이해 본문
Java에서 패키지(package)는 클래스를 논리적으로 묶어 관리하는 디렉터리 구조이며,
import는 다른 패키지에 있는 클래스를 현재 코드에서 사용할 수 있도록 가져오는 문법입니다.
코드를 체계적으로 관리하고 충돌을 방지하며 유지보수성을 높이는 데 필수적인 개념입니다.
1. 패키지(package)란?
패키지는 Java 클래스들을 폴더 구조로 그룹화한 논리적 단위입니다.
예:
com.example.project
문법:
package com.example.project;
패키지를 사용하는 이유
- 클래스 이름 충돌 방지
- 관련된 클래스들을 쉽게 그룹화
- 프로젝트 구조 정리
- 접근 제어자와 함께 캡슐화 강화
프로젝트가 커질수록 패키지를 잘 나누는 것이 매우 중요합니다.
패키지 구조 예
src/
└─ com/
└─ example/
├─ model/
├─ service/
├─ controller/
└─ util/
2. 패키지가 있는 클래스 선언
파일의 가장 첫 줄에 반드시 package 문이 있어야 합니다.
package com.example.util;
public class MyUtil {
public static void printHello() {
System.out.println("Hello");
}
}
설명
- 파일 위치: 프로젝트 구조의 com/example/util/MyUtil.java
- 그 외 import 문보다 항상 먼저 나와야 함
3. import란?
import는 다른 패키지의 클래스를 현재 클래스에서 사용하기 위한 선언입니다.
문법:
import 패키지명.클래스명;
예:
import java.util.List;
이제 List를 패키지명 없이 바로 사용할 수 있습니다.
4. import 사용 예제
예제 1: 특정 클래스 import
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
}
}
예제 2: 여러 클래스가 있는 패키지 import
import java.util.*;
주의
- *는 하위 패키지를 포함하는 것이 아니라 해당 패키지 안의 모든 클래스만 포함
잘못된 예:
import java.util.*; // java.util.concurrent 패키지는 포함되지 않음
5. import 없이 사용하는 경우 (패키지명 포함)
import를 쓰지 않고도 패키지명을 명시하면 사용 가능하지만 권장되지 않습니다.
java.util.Date today = new java.util.Date();
이 방식은 코드가 길고 가독성이 떨어집니다.
6. 같은 패키지에서는 import 불필요
동일한 패키지에 속한 클래스끼리는 import 문 없이 바로 사용할 수 있습니다.
예:
package com.example.service;
public class UserService { ... }
같은 패키지에 있는:
package com.example.service;
public class OrderService {
UserService userService = new UserService(); // import 필요 없음
}
7. 자주 쓰는 Java 기본 패키지
Java는 자동으로 java.lang 패키지를 import합니다.
예:
- String
- System
- Math
- Integer
따라서 아래는 import 없이도 사용 가능합니다.
String s = "Hello";
System.out.println("Hi");
8. 클래스 이름 충돌 시
서로 다른 패키지에서 같은 이름의 클래스를 사용할 경우 import 대신 완전한 패키지 경로로 사용해야 합니다.
예:
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());
9. 전체 예제
com/example/util/MyUtil.java
package com.example.util;
public class MyUtil {
public static void hello() {
System.out.println("Hello from Util");
}
}
Main.java
package com.example;
import com.example.util.MyUtil;
public class Main {
public static void main(String[] args) {
MyUtil.hello();
}
}
출력:
Hello from Util
10. 정리
- package는 클래스를 논리적으로 묶는 폴더 구조
- 파일의 첫 줄에 package 문을 작성해야 함
- import는 다른 패키지의 클래스를 가져오는 문법
- *는 하위 패키지를 포함하지 않음
- 같은 패키지 내부는 import 불필요
- java.lang은 자동 포함
반응형
'IT > Java' 카테고리의 다른 글
| [Java] 예외(Exception)와 오류(Error) 차이 (0) | 2025.12.31 |
|---|---|
| [Java] 제네릭(Generic) 기본 개념과 예제 (0) | 2025.12.31 |
| [Java] enum 사용법 및 실전 예제 (0) | 2025.12.30 |
| [Java] 익명 클래스(anonymous class) 사용 예제 (0) | 2025.12.29 |
| [Java] 내부 클래스(inner class) 종류와 사용법 (0) | 2025.12.29 |
Comments
