続・とってもわかりやすいJAVA 【第10回 パッケージとimport文】


今回は「パッケージ」と「import文」について説明していきます。

◆パッケージ

・パッケージとは

パッケージとはクラスを管理するフォルダのようなものです。
複数のクラスをパッケージによって分類することにより、管理がしやすくなります。
クラスは同じ名前のものを使うことができませんが、パッケージで分けると同じクラス名を使用することが可能になります。
つまり、「パッケージ名+クラス名」で見分けている、ということです。
ではパッケージがプログラムにどのように書かれるのか、構文をみてみましょう。

package パッケージ名;
class クラス名 { ・・・ }

以上のように、package文はクラスの外に書かれます。
もしパッケージ名を階層化して宣言したい場合は、ピリオド(.)で区切って宣言することができます。
パッケージの記述がない場合は、「無名パッケージ(デフォルトパッケージ)」に属している扱いとなります。

・Javaの主なパッケージ

Javaでは、開発者がよく使う機能をまとめたクラスをパッケージ化し、クラスライブラリとして提供しています。
主なパッケージは以下の表の通りとなります。
パッケージ

なおjava.langパッケージはimport文がなくても使用できます。
その他クラスライブラリの詳細はこちらをご参照下さい。
http://docs.oracle.com/javase/jp/7/api/

◆import文

・import文とは

import文は、所属が異なるパッケージのクラスを利用する際に使用します。
パッケージと同様にクラスの外に宣言され、package文と一緒に使用する際にはpackage文を先に記述します。
構文は以下のようになっています。

import パッケージ名.クラス名;

クラスの部分をアスタリスク(*)にするとそのパッケージ内のクラスをすべて使用することができます。
また、import文は複数宣言することができます。
import文を使用する場合は、利用される側のクラスやメソッドのアクセス修飾子がpublicでないと参照することができません。

・サンプルプログラム

では実際にimport文を使用したサンプルプログラムをみてみましょう。

import java.util.ArrayList;

class Sample10_1 {
    public static void main(String[] args) {
        ArrayList<String> al = new ArrayList<>();
        al.add("abc");
        al.add("def");
        al.add("ghi");
        System.out.println(al);
    }
}

実行結果:[abc, def, ghi]

「あれっ?」と思われた方もいるかもしれません。
実は【第6回 ArrayList】で出てきていました。
ArrayListはJavaのクラスライブラリで提供されているクラスで、先ほどの表にも載っています。
パッケージ2
表をみてみると、ArrayListはjava.utilパッケージに属しているクラスです。
そのため使用するには「import文」で宣言しなければいけません。

・Scannerクラス

では表に乗っているもの以外のクラスもひとつ紹介しましょう。
紹介するのは、java.utilパッケージに属する「Scannerクラス」です。
Scannerクラスを使うとキーボードから値を入力することができるようになります。
実際にサンプルをみてみましょう。

import java.util.Scanner; //Scannerクラスをimport

class Sample10_2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // Scannerクラスをインスタンス化
        System.out.print("整数を入力してください:");
        int n = sc.nextInt(); // 入力した整数を、int型の変数nに代入
        if (n == 0) {
            System.out.println("0です");
        } else if (n > 0) {
            System.out.println("正の整数です");
        } else {
            System.out.println("負の整数です");
        }
    }
}

実行結果

Scanerクラス1

赤の下線部が実際にキーボードで入力した値です。
5行目でScannerクラスをインスタンス化し、7行目で入力された値をnに代入しています。
そしてnの値によって、if文で条件分岐させています。
Scannerクラスを使うとプログラムに幅を持たせることができますのでぜひとも試してみてください!

今回はここまでとします。
  • このエントリーをはてなブックマークに追加

PAGE TOP