Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaのimport文とstatic import文の違いをわかりやすく解説

Javaでは、import文を使うことで、特定のパッケージに属するクラスやインターフェースを取り込むことができます。import文を使用すれば、毎回完全修飾名(FQCN)を記述する必要がなく、クラス名だけで直接コードに書けるようになります。

一方、static import文は、特定のクラスやパッケージからstaticメンバー(静的メンバー)をインポートするための構文です。static importを使えば、staticメンバーへアクセスする際にクラス名を指定する必要がなくなり、メンバー名を直接記述できるようになります。

import文の基本

  • 別パッケージのクラスやメソッドにアクセスするには、完全修飾名を使うか、import文を利用します。
  • アクセス対象のクラスやメソッドは、アクセス可能である必要があります。アクセス可否はアクセス修飾子によって決まります。
  • privateメンバーは同一クラス内からしかアクセスできないため、完全修飾名やimport文を使っても外部からアクセスすることはできません。
  • java.langパッケージは、Javaによって自動的にインポートされるため、明示的なimport文は不要です(例:StringやSystemなど)。

import文のコード例

import java.util.Vector;
public class ImportDemo {
    public ImportDemo() {
        // importしているので、パッケージ名なしで直接Vectorを利用できる
        Vector v = new Vector();
        v.add("Tutorials");
        v.add("Point");
        v.add("India");
        System.out.println("Vector values are: " + v);

        // importしていないため、完全修飾名でArrayListを参照している
        java.util.ArrayList list = new java.util.ArrayList();
        list.add("Tutorix");
        list.add("India");
        System.out.println("Array List values are: " + list);
    }

    public static void main(String arg[]) {
        new ImportDemo();
    }
}

実行結果

Vector values are: [Tutorials, Point, India]
Array List values are: [Tutorix, India]

static import文の基本

  • static importを使うと、クラスのstaticメンバーをクラス名を付けずに直接利用できます。
  • static import宣言には2つの形式があります。特定のstaticメンバーだけをインポートする単一static importと、クラスのすべてのstaticメンバーをインポートするオンデマンドstatic importです。
  • static importはJava 5で導入された機能です。
  • メリットとしては、タイピング量の削減コードの再利用性向上が挙げられます。

static importのコード例

import static java.lang.System.*; // static importを使用
public class StaticImportDemo {
    public static void main(String args[]) {
        // System.outではなく、outだけで呼び出せる
        out.println("Welcome to Tutorials Point");
    }
}

実行結果

Welcome to Tutorials Point

両者の違いまとめ

項目import文static import文
インポート対象クラス・インターフェースstaticメンバー(フィールド・メソッド)
省略できる記述パッケージ名クラス名
導入バージョンJava初期からJava 5以降
主な用途他パッケージの型の利用定数やユーティリティメソッドの簡潔な呼び出し

このように、import文は「クラスやインターフェース」を、static import文は「staticメンバー」を対象とする点が最大の違いです。用途に応じて使い分けることで、より読みやすく簡潔なJavaコードを書くことができます。

  1. JavaのJFrameとJDialogの違いとは?特徴と使い分けを解説

    JavaのSwingには、ウィンドウを表示するためのトップレベルコンテナとしてJFrameとJDialogが用意されています。どちらもよく似た役割を持ちますが、動作や用途には重要な違いがあります。この記事では、それぞれの特徴をサンプルコードとともに解説し、最後に使い分けのポイントをまとめます。 JFrameとは フレームに追加されたコンポーネントは「コンテンツ」として扱われ、contentPaneによって管理されます。JFrameにコンポーネントを追加する際は、フレーム本体ではなくcontentPaneに対して追加する必要があります。 JFrameは、タイトル、境界線、(オプションで)メニュ

  2. JavaのGridLayoutとGridBagLayoutの違いを徹底解説!特徴と使い分けのポイント

    JavaのAWT/Swingには複数のレイアウトマネージャーが用意されていますが、その中でもGridLayoutとGridBagLayoutは、コンポーネントを格子状(グリッド)に配置するという点でよく似ています。しかし、両者には重要な違いがあります。 GridLayoutは、すべてのコンポーネントを矩形のグリッド内に配置し、領域を同じサイズの長方形に分割して、各コンポーネントをそれぞれのセルの中に収めます。一方、GridBagLayoutは柔軟性の高いレイアウトマネージャーであり、コンポーネントのサイズを揃えることなく、縦方向・横方向に整列させて配置できます。各GridBagLayoutオブ