
【6日でできるJava入門】パッケージとインポート
Javaのクラスやライブラリは膨大な数が存在し、それらは整理・管理のためにパッケージという単位でグループ化されています。
また、クラスを利用する際には、プログラム中で正しい「クラス名(正式名称)」を記述したり、import文を使って簡潔に記述できる仕組みが用意されています。ここでは「パッケージ」と「インポート(import)」の基本と使い方を解説します。

1.パッケージとは
1.1. クラスの正式名称とパッケージ階層
Javaでは、各クラスは所属するパッケージ名+クラス名で一意に特定されます。
クラスの正式名称は、パッケージ階層をドット.で繋げて表現します。
| 例 | 内容 |
|---|---|
java.lang.String | Stringクラス(言語基本) |
java.util.Random | ランダム生成クラス(ユーティリティ) |
java.io.FileInputStream | ファイル入力ストリーム(入出力) |
階層構造のイメージ
java
├── applet
├── awt
├── beans
├── io ← java.io パッケージ
├── lang ← java.lang パッケージ
│ ├── annotation
│ ├── instrument
│ ├── management
│ ├── ref
│ └── reflect
├── net
├── nio
├── security
├── sql
├── text
├── util
│ ├── concurrent ← java.util.concurrent パッケージ
│ │ ├── jar
│ │ ├── logging
│ │ ├── regex
│ │ ├── zip
│ │ ├── atomics
│ │ └── locks
org
javax1.2. パッケージの役割
- クラスをグループ化し、名前の重複を防ぐ
- 階層的な管理(まるでディレクトリやフォルダのよう)
- 機能別に整理され、使いやすくなっている。
2.import文の使い方
2.1. import文の基本
プログラム内で「パッケージ名+クラス名」を毎回すべて書くのは大変です。
そこで、import文を使うことで、クラス名だけで利用できるようにします。
例:import文を使わない場合
ファイル名: lesson20_1.java
public class lesson20_1 {
public static void main(String[] args) {
java.util.Random rand = new java.util.Random();
int n = rand.nextInt(10);
System.out.println("乱数: " + n);
}
}実行結果
乱数: 7例:import文を使う場合
ファイル名: lesson20_2.java
import java.util.Random;
public class lesson20_2 {
public static void main(String[] args) {
Random rand = new Random();
int n = rand.nextInt(10);
System.out.println("乱数: " + n);
}
}実行結果
乱数: 12.2. ワイルドカード(*)によるまとめてインポート
複数のクラスを同じパッケージから使う場合は、「*」でまとめてインポートできます。
import java.util.*; の意味
- これは「java.utilパッケージに含まれるすべてのクラスを使えるようにする」という意味です。
*は「ワイルドカード」と呼ばれ、複数のクラス(例:Random,ArrayList,Scannerなど)をまとめてインポートします。
ファイル名: lesson20_3.java
import java.util.*;
public class lesson20_3 {
public static void main(String[] args) {
Random rand = new Random();
ArrayList<String> list = new ArrayList<>();
list.add("りんご");
list.add("バナナ");
System.out.println("リスト: " + list);
}
}実行結果
リスト: [りんご, バナナ]※
import java.*;のように、javaパッケージ全体はインポートできません。
ワイルドカードが使えるのはパッケージ階層1つ分のみです。
3.自作パッケージの作成と利用
3.1. パッケージ宣言
自分で作成したクラスをパッケージにまとめる場合は、ファイルの先頭でpackage文を使います。
例:自作パッケージの宣言
ファイル名: HelloTool.java
「sampl\tools」ディレクトリ内に「HelloTool.java」を作成します。
package sample.tools;
public class HelloTool {
public void sayHello() {
System.out.println("こんにちは、ツールクラスからのメッセージです。");
}
}実行結果
使う側のクラス:
ファイル名:PackageUseExample.java
import sample.tools.HelloTool;
public class PackageUseExample {
public static void main(String[] args) {
HelloTool tool = new HelloTool();
tool.sayHello();
}
}実行結果
こんにちは、ツールクラスからのメッセージです。4.パッケージとimportのまとめ表
| 用語 | 説明 | サンプル例 |
|---|---|---|
| パッケージ | クラスを階層で管理する単位 | java.util、java.io |
| import文 | 他のパッケージのクラスを簡単に使うための宣言 | import java.util.Random; |
| ワイルドカード | パッケージ配下すべてのクラスを一度にインポート | import java.util.*; |
| package文 | クラスを自作パッケージに属することを宣言する | package myapp.tools; |
まとめ
- Javaクラスはパッケージ階層で整理されており、クラス名の前にパッケージ名をつけて管理される。
import文を使うことで、クラス名だけで簡単にライブラリ利用ができる。- 複数のクラス利用時は
*でまとめてインポートできるが、パッケージ階層を超えてのインポートは不可。 - 自作クラスもパッケージでまとめて管理し、
package・import文で他ファイルから使うことができる。
