電子書籍の厳選無料作品が豊富!

JAVAの初心者です。
Cのヘッダファイルみたいに、自分で作った外部ファイルをインクルードするには import 文を使ってメインのクラスの前にいれれば良いとおもうのですが、その
認識で間違ってないでしょうか。

また、そのファイルは、あらかじめコンパイル済みである必要があるのか、読み込み側となるソースファイルと同じディレクトリにおいておけば単純にコンパイルが済むのか。
説明が伝わりにくいかと思いますが、どうかよろしくお願いします。

A 回答 (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.*;

の記述が必要です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/06/20 14:51

CのインクルードとJavaのimportでは概念が違います。


#includeでは、ソースファイルをそこに挿入するわけですが、
importはパッケージ外のクラスを使えるようにするものです。

importするものは、ソースファイルではなく、
コンパイルして.classファイルにしておく必要があります。
(ただし適切なディレクトリに置いておけば、
自動的にコンパイルしてくれます)

同じパッケージのクラスファイルは、
importする必要はありません。

で「同じパッケージ」というのは、二つ意味があります。
package文を使った場合で、同じパッケージ宣言をしていること。
package文を使わない状態(無名パッケージ)で、
同じディレクトリに入っていること、です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/06/20 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!