【Java】初心者のための簡単解説!importを別の角度から捉える。
  • facebookページ
  • twitterページ
  • 2019.11.27

    【Java】初心者のための簡単解説!importを別の角度から捉える。

    PHPやJavaScriptを触ったことのある方は、恐らくJavaで最も不便に感じるものとして”import”を挙げるのではないでしょうか?

    私自身もPHPから入っているため、Javaの学習時に最も煩わしく感じていました。

    そこで今回はJavaの基本ルールでもあるクラスライブラリのインポートについて解説してみたいと思います。

    これを読んでインポートについて理解してもらえたら非常に嬉しく思いますので最後までお付き合いください。

    Javaでプログラムを組む時に知っておくべき事

    冒頭でも触れましたが、PHPなどと比べJavaは宣言やルールが細かく設定されています。

    これが他の言語(C言語等、更に難しい言語もありますが…)に比べJavaがとっつきにくい原因でもあります。

    まず、Javaでクラスを使う際には必ずと言っていいほど”import”作業が発生します。

    このクラスライブラリには様々なものがありますが、ざっと思いつくものをいくつか以下に挙げてみます。

    Javaのパッケージ

    基本クラス:java.lang
    アクセス:java.io, java.nio, java.net
    演算:java.math
    グラフィックス:java.awt, javax.swing
    テキスト:java.text
    イメージ:java.awt.image, javax.imageio
    セキュリティ:java.security, javax.crypto
    データベース:java.sql
    スクリプト:java.script
    アプレット:java.applet
    JavaBeans:java.beans

    パッケージの使用

    これらのパッケージを使用する為にはファイルの先頭で以下の構文を使って記述します。

    パッケージ宣言と呼ばれるもので、他のサイトのサンプルコードでもよく見かけると思います。

    Javaには大きく分けて”Java.lang”、”java.util”、”java.net”、”java.io”、”java.awt”の5つがあり、上記でリストとして記載したものもこのどれかに属します。

    例外

    全てのパッケージは宣言する必要が有るわけではなく、中には宣言無しで利用できるものもあります。

    それが”java.lang”パッケージです。

    これに属しているものは宣言無し(importする必要がない)で使用することが出来るため、”String”や”int”といったクラスは「クラス名 変数 = new クラス名();」のように記述すれば利用できるわけです。

    importのルール

    importにはファイル先頭で宣言するだけでなく、他にもいくつかのルールが存在します。

    重複させない

    まず一つ目のルールは「同じようなパッケージクラス名は重複させない」ということです。

    次のコードを見てください。

    このコードでは、”makeA”というパッケージと”makeB”というパッケージ内にそれぞれ”PackageSample”というクラスがあり、そのクラスを使用する為にそれぞれのパッケージをインポートしています。

    しかしこの記述はエラーが返されます。

    ファイル先頭で宣言する

    これは先ほども説明しましたが、パッケージ宣言はファイル先頭で宣言するようにしてください。

    またわかりやすく記述することを心掛けてください。

    例えば自作パッケージ”makepack”内のクラス”A”、”B”、”C”をimportする場合、次のように記述した方が他の開発者が見た場合にどのパッケージを使っているかが分かりやすくなります。

    悪い例でもエラーとはなりませんが、他の開発者が見た時に非常にわかり難いため、同じパッケージは揃えて記述することが望ましいです。

    オンデマンドインポート

    アスタリスクを使用することで、クラス名を記述することなくパッケージ全体をimport出来ます。

    またこの方法を使用してパッケージ全体をインポートしたとしても、これが原因で要領が肥大化するといったことはありません。

    しかし、近年ではコード内で利用しているクラスを明確にすることが慣例となってきていますので、できるだけオンデマンドインポートは利用しない方が良いとされています。

    Javaを学習中の方はロジックを知る為にも出来る限りアスタリスクは使わず、全て記述するように心がけましょう。

    因みに、アスタリスクを使った記述方法は以下の通りです。

    importの概念を捨てる

    今までの解説では既存のパッケージとクラスについて説明してきましたが、クラスを自作するために、もう少しimportについての説明をします。

    Javaでは”import”とは”読み込ませるという行為”といて捉えるのではなく”パッケージを含む冗長なクラス名を省略して記述する行為”と捉えた方が良いかもしれません。

    例えば、先ほど使用するクラスを予めファイルの先頭でimportしないとエラーとなると説明しましたが、厳密にはエラーを回避させて記述する方法もあります。

    次のコードを見てください。

    実行結果

    このコードではimportでパッケージ宣言を敢えて行わずにコードを記述していますが、特にエラーが返されることなく動作しています。

    クラス名を「完全限定名」で指定し記述すれば、実は特にimportする必要はないというわけです。

    しかし、これを毎回記述するのは面倒すぎるため、ファイル先頭で一度「このパッケージのこのクラスを使用します!」と宣言することで、プログラムに理解させているのです。

    これは変数の初期化などと一緒で、Javaの基本ルールに則った方法と言えます。

    このように考えるとその他のロジックも意外と簡単に理解できるかも知れません。

    まとめ

    いかがでしたか?

    今回は”import”についてわかりやすく解説してみました。

    “import”という単語だけで理解しようとするとどうしてもその意味から、読み込みということを前提に考えてしまうと思いますが、プログラムというのは他の角度から見るとわかりやすいこともあったりします。

    この記事を読んで様々な角度から考えられるように訓練してもらえると非常に嬉しいです。

     



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE