웹(WEB)/자바(Java)

[Java] 자바 package, import

마달랭 2024. 12. 29. 23:40
반응형

개요

🔹 패키지(Package)란?

패키지관련된 클래스들을 묶어놓은 폴더(디렉터리) 구조이다.

  • 클래스를 논리적으로 그룹화하여 이름 충돌을 방지하고, 코드를 관리하기 쉽게 만든다.
  • 자바에서는 클래스 파일이 많아질 경우 패키지를 사용해 정리한다.
  • 폴더 구조패키지 이름이 일치해야 한다.

🔹 임포트(Import)란?

  • 다른 패키지의 클래스를 사용하려면 import 문을 사용해야 한다.
  • 같은 패키지에 있는 클래스는 import 없이 바로 사용 가능하다.

 

패키지의 장점

 

  • 이름 충돌 방지: 같은 이름의 클래스가 다른 패키지에서 존재할 수 있음.
  • 코드 재사용: 필요한 패키지를 가져와 사용 가능.
  • 코드 관리 용이: 논리적으로 관련된 클래스를 하나로 묶어 관리.
  • 보안성: 패키지를 사용해 클래스의 접근 제어를 설정할 수 있음 (public, protected, default, private).

 

 

패키지 선언 방법

패키지를 사용하려면, 클래스 파일의 최상단에 package 키워드로 패키지를 선언해야한다.

일반적으로 소속.프로젝트.용도를 통해 패키지 이름을 결정한다.

 

src 폴더에 mypackage.vehicles를 생성해 주었다.

package mypackage.vehicles;  // 패키지 선언

// Car 클래스 정의
public class Car {
    public void drive() {
        System.out.println("The car is driving.");
    }
}
package mypackage.vehicles;  // 패키지 선언

// Motorcycle 클래스 정의
public class Motorcycle {
    public void ride() {
        System.out.println("The motorcycle is riding.");
    }
}


mypackage.vehicles 폴더 내에 Car와 Motorcycle 클래스를 생성해 준 뒤 패키지를 선언해 주었다.

 

 

import 사용

위에서 추가한 패키지 내부의 클래스들을 import 를 통해 불러와 사용할 수 있다.

import mypackage.vehicles.Car;
import mypackage.vehicles.Motorcycle;

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        Motorcycle motorcycle = new Motorcycle();
        car.drive();
        motorcycle.ride();
    }
}


또한 와일드카드(*)를 사용하여 패키지의 모든 클래스를 임포트 할 수 있다.

import mypackage.vehicles.*;

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        Motorcycle motorcycle = new Motorcycle();
        car.drive();
        motorcycle.ride();
    }
}


단, *를 사용하면 패키지 내 모든 클래스를 임포트하지만, 서브 패키지는 포함되지 않는다.

예를 들어 아래와 같이 코드를 작성한다면 Car와 Motorcycle클래스를 사용할 수 없다.

import mypackage.*; // 서브 클래스는 포함되지 않음

public class Main {
    public static void main(String[] args) {
        Car car = new Car();
        Motorcycle motorcycle = new Motorcycle();
        car.drive();
        motorcycle.ride();
    }
}



기본 제공 패키지

자바는 이미 기본적인 패키지를 제공한다.

  • java.lang – String, Math, System 등 (기본 임포트, import 불필요)
  • java.util – List, ArrayList, HashMap 등 (데이터 구조 및 유틸리티)
  • java.io – 입출력 관련 클래스 (File, BufferedReader 등)
  • java.net – 네트워크 관련 클래스 (Socket, URL 등)
  • java.sql – 데이터베이스 관련 클래스 (Connection, ResultSet 등)

 

728x90
반응형

'웹(WEB) > 자바(Java)' 카테고리의 다른 글

[Java] 자바 Object 클래스  (0) 2024.12.30
[Java] 자바 제한자  (0) 2024.12.30
[Java] 자바 객체지향 프로그래밍  (0) 2024.12.29
[Java] 자바 생성자, this  (1) 2024.12.28
[Java] 자바 메서드  (0) 2024.12.28