
자바의 import에 대해 아주 쉬운 설명과 함께, 이해하기 쉬운 짧은 예제(클래스 분리 + 실행 결과)까지 예제를 제공합니다.
핵심 요약
- import는 "다른 폴더(패키지)에 있는 도구(클래스)를 가져와 사용하겠다"는 뜻입니다.
- 자바 파일 맨 위에 적어두면 그 파일에서 해당 도구 이름을 바로 쓸 수 있게 됩니다.
- 안 쓰면 도구의 전체 이름(패키지명 포함)을 매번 써야 해서 번거롭습니다.
예비 비유:
- 도구 상자 안에 여러 공구(클래스)가 들어있어요. import는 특정 공구를 작업대 위로 꺼내놓는 것과 같아서, 꺼내놓으면 매번 상자에서 꺼내지 않아도 바로 쓸 수 있습니다.
문법(간단)
- 특정 클래스 하나 가져오기: import 패키지.클래스이름;
- 예: import java.util.Random;
- 패키지 안의 모든 클래스 가져오기(와일드카드): import 패키지.*;
- 예: import java.util.*;
- static 멤버(상수/메서드)를 바로 쓰고 싶을 때: import static 패키지.클래스.멤버;
- 예: import static java.lang.Math.PI; (이건 고급 내용이니 필요할 때만)
실습 예제 (아주 짧고 쉬운 버전)
이 예제는 사용자에게 이름을 물어보고(Scanner), 랜덤으로 1~3 사이의 칭찬 메시지를 골라서 보여줍니다(Random). 두 개의 외부 도구를 import해서 사용합니다.
- Main.java
java
import java.util.Scanner; // 사용자 입력을 위해 가져옴
import java.util.Random; // 랜덤 숫자를 만들기 위해 가져옴
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
System.out.print("이름을 입력하세요: ");
String name = sc.nextLine();
// 1~3 사이 랜덤 숫자
int pick = rand.nextInt(3) + 1;
String message;
if (pick == 1) message = "오늘 멋져 보여요!";
else if (pick == 2) message = "연습한 보람이 있어요!";
else message = "정말 잘하고 있어요!";
System.out.println(name + "님, " + message);
sc.close();
}
}
설명:
- import java.util.Scanner; 를 적어 Scanner를 바로 사용할 수 있게 했습니다. (안 쓰면 java.util.Scanner 라고 매번 써야 함)
- import java.util.Random; 를 적어 Random을 바로 사용할 수 있습니다.
- 만약 import java.util.*; 라고 쓰면 java.util 안의 모든 클래스(Scanner, Random 등)를 한 번에 가져올 수 있습니다.
실행 예시 (콘솔)
사용자가 "철수"를 입력했다고 가정하면 출력은 다음처럼 나옵니다(랜덤이므로 메시지는 달라질 수 있음).
이름을 입력하세요: 철수
철수님, 정말 잘하고 있어요!
또는
이름을 입력하세요: 철수
철수님, 오늘 멋져 보여요!
자주 묻는 간단 Q&A
- Q: import를 안 쓰면 안 되나요?
A: 직접 전체 경로(java.util.Scanner)로 항상 쓰면 됩니다. 다만 매우 번거롭습니다. import는 편리함을 줍니다. - Q: import java.util.*; 는 언제 쓰나요?
A: 여러 클래스를 한꺼번에 쓸 때 편리하지만, 어떤 클래스를 쓰는지 명확히 관리하려면 개별 import를 권장합니다. - Q: 클래스 내부에서만 쓸 수 있나요?
A: import는 소스 파일 단위로 선언되며, 그 파일 안에서만 적용됩니다. 다른 파일에는 다시 import해야 합니다.
'Java_language' 카테고리의 다른 글
| 상속 (0) | 2025.12.03 |
|---|---|
| 상속이란? (0) | 2025.12.01 |
| 클래스 변수 vs 인스턴스 (0) | 2025.12.01 |
| 캡슐화 (private) (0) | 2025.12.01 |
| 자바의 static과 this에 대해서 (0) | 2025.12.01 |