• ベストアンサー

JAVAで外部ファイルをインクルード

JAVAの初心者です。 Cのヘッダファイルみたいに、自分で作った外部ファイルをインクルードするには import 文を使ってメインのクラスの前にいれれば良いとおもうのですが、その 認識で間違ってないでしょうか。 また、そのファイルは、あらかじめコンパイル済みである必要があるのか、読み込み側となるソースファイルと同じディレクトリにおいておけば単純にコンパイルが済むのか。 説明が伝わりにくいかと思いますが、どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

javaのimport文は、C言語のインクルードとは全く違います。 C言語の#includeは、他のソースファイルを自分のソースに挿入することを意味しますが、 javaのimport文は、パッケージ名を省略したクラスのパッケージ名をコンパイラに教えるためのものです。 従って、ソースファイル中のクラス名を完全な形で記述するなら、import文は書く必要がありません。 例えば、java.util.ArrayListを使いたい場合、 ソース中の記述を全て、 java.util.ArrayList list = new java.util.ArrayList(); のように、パッケージまで指定するのであれば、 import java.util.ArrayList; の記述は必要ありません。 逆に、 ArrayList list = new ArrayList(); のように記述したいのであれば、ArrayListがどのパーケージのものかをコンパイラに教えるため、 import java.util.ArrayList; あるいは、 import java.util.*; の記述が必要です。

alx
質問者

お礼

詳細な回答ありがとうございました。 たぶん、C の#define みたいなものかと自分なりに理解してみました。 持っていた書籍が初心者向けなため、パッケージの作り方まで指南がありませんでしたが、お答えをきっかけに情報を集め自作することができました。 これからもコツコツ精進していきたいと思います。

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

CのインクルードとJavaのimportでは概念が違います。 #includeでは、ソースファイルをそこに挿入するわけですが、 importはパッケージ外のクラスを使えるようにするものです。 importするものは、ソースファイルではなく、 コンパイルして.classファイルにしておく必要があります。 (ただし適切なディレクトリに置いておけば、 自動的にコンパイルしてくれます) 同じパッケージのクラスファイルは、 importする必要はありません。 で「同じパッケージ」というのは、二つ意味があります。 package文を使った場合で、同じパッケージ宣言をしていること。 package文を使わない状態(無名パッケージ)で、 同じディレクトリに入っていること、です。

alx
質問者

お礼

ありがとうございました。 お教えていただいた情報を元に調べてみた結果、 ようやく概念がわかりました。 たぶん、C の#define みたいなものかと。

関連するQ&A

専門家に質問してみよう