No.2ベストアンサー
- 回答日時:
packageは、そのクラスのパッケージを指定しています。
importは、自分の属するパッケージ以外のほかのパッケージを使用する場合に使います。
例1:パッケージ名「hoge.moge」クラス名「MyClass」
package hoge.moge.MyClass;
class MyClass{
}
例2:パッケージ名「hoge.moge」クラス名「MyClass」が
別パッケージ「hoge2.moge2」クラス「OtherClass」を使用する場合。
package hoge.moge.MyClass;
import hoge2.moge2.OtherClass;
class MyClass{
OtherClass oc;
}
例2は、import文を使用しなくても、次のように書き換えることができます。
package hoge.moge.MyClass;
class MyClass{
hoge2.moge2.OtherClass oc;
}
でも、これだと何度も記述するのが面倒くさいですよね?
そのためにimport文を使用して、「自パッケージ外のクラスについては、ここから探してね」とコンパイラに指示していることになります。
この回答への補足
有り難うございます。だからpackageは絶対一つだったんですね!目から鱗でした。
でも、補足で教えてください。package文がないソースってありますよね。どうなるのですか?自分のいるクラスがどのpackageか分からないですよね?よろしくお願いします。
No.4
- 回答日時:
ごめんなさい。
私の経験的には、No3で書いたとおりなんですが、厳密にはちょっと違うようです。
ちゃんとした定義は、Java言語仕様で確認したほうがよいです。
紹介するURLは、Java言語仕様の日本語訳です。
これによると、名前なしパッケージは、1つ以上存在することもあって、
どの名前なしパッケージを使うかはホストシステムによって決まるそうです。
一時的な開発時などに、名前なしパッケージを使うことを勧めているので、
「名前なしパッケージは常にインポートされている」という考え方は、
間違っていたと思います。
(経験的にはいつもひとつのパッケージしか使われないように思いましたが)
参考URL:http://www.y-adagio.com/public/standards/tr_java …
No.3
- 回答日時:
パッケージ名を指定していないクラスは、
「名前なしパッケージ」に属していると言えます。
一般的には、名前なしパッケージは一番上階層のパッケージだと思っていいと思います。
コンパイルした場合は、出力ディレクトリのルートに作成されます。
じゃあ、コンパイラはどうやってパッケージ名のついていないクラスを見つけ出すのか?
→名前なしパッケージは常にインポートされていると考えていいと思います。
No.1
- 回答日時:
package は、そのファイルに記述されているクラスが、どのパッケージに属するか、の宣言です。
import は、使おうと思っているクラスの(パッケージを含めた)宣言です。
「明確に使い分けないといけない」もなにも、意味が違います。
■クラス CCC のソース
package aaa.bbb; // クラス CCC を使うときには、import aaa.bbb.CCC って使ってね
class CCC {
■クラス CCC を使っているソース
import aaa.bbb.CCC;
class XXX {
# 伝わりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) tkinterのimport文の書き方 2 2022/10/14 21:17
- その他(プログラミング・Web制作) LCD ディスプレイを Raspberry Pi Pico に接続する 1 2023/04/25 16:31
- オープンソース Flaskでサーバー立ち上げに関して 1 2023/08/12 21:02
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- 工学 Pythonの3次元描画に関する質問です 3 2022/12/07 20:07
- その他(クラウドサービス・オンラインストレージ) Google ColabでGoogleドライブのサブフォルダにファイルを生成する方法 1 2022/10/31 17:37
- その他(プログラミング・Web制作) I2C接続のLCDディスプレイを使う 2 2023/05/01 17:15
- オープンソース Pythonのコードをexe化 1 2023/07/03 08:01
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
CListCtrlクラスに初期化する関...
-
EclipseでJSPのコンパイルエラー
-
java eclipse 型に解決できません
-
eclipse でクラスに色
-
グローバルIPとプライベートIP...
-
JAVAで他ライブラリのクラスを...
-
正規表現を使った小数入力チェ...
-
クラスのプロパティに構造体を...
-
クラスにアクセスできません。
-
エクセルのデータ振り分け方法...
-
同一パッケージにあるクラスが...
-
クラスの衝突
-
自作のクラスファイルがインポ...
-
packageとimport の違いって?
-
重複エラーを解決するには
-
[C++/CLI]可変個引数について
-
アルキメデスの大戦の櫂はなぜ2...
-
Sub-LVDS規格とは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
「天声人語」をインターネット...
-
java eclipse 型に解決できません
-
グローバルIPとプライベートIP...
-
ポータブル電源を買おうと思う...
-
容姿について
-
自作のクラスファイルがインポ...
-
どこからも呼ばれていない無意...
-
UMLのクラス図はmain()も含むん...
-
同一パッケージにあるクラスが...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
アルキメデスの大戦の櫂はなぜ2...
-
dllと同じプロジェクトにする方法
-
IPアドレスの3バイト目の呼び方
-
3年間同じクラスになる確率
-
重複エラーを解決するには
-
同じパッケージ、クラス名が含...
-
コンボボックスのマウスホイー...
-
共通で使う関数を集めたクラス...
おすすめ情報