わたしはJavaのソースコードを書くときNetbeans 8.1を使っていますが、
例えば、ファイル名をkadaiにしたときコードの最初に
package kadai;
と書いてあります。これを消すとエラーになるのですが、このpackageの役割がいまいちわかりません。
それに、web上のpaiza.ioで実行するときはpackage (ファイル名) が書いてありませんので余計、packageの成す意味が分からなくなりました。
(paiza.ioではむしろpackageを書くとエラーが出ます。)
また、YouTubeなどで初心者向けにjavaの解説をする動画ではメモ帳で動かしており、その際
package (ファイル名)はありませんでした。
package (ファイル名)がないソースとあるソースがありますが、それはどういう違いがあるのですか?
どなたかご存知の方ご教授お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
(i)package (ファイル名)の役割
(ii)プログラミングコンテストなどでjavaのソースコードを提出するときpackage (ファイル名)を書く必要性(提出するのはファイル単体,一つだけです。)
(正直、なぜこの人が今更こんな質問を投げているのか理解できない。。。)
プロフィールを見るとC#タグが付いているので、どちらの回答も「C#におけるnamespaceと同じです」としておきます。
投稿2018/06/22 01:21
総合スコア5572
0
ベストアンサー
Javaに関する質問に結構答えてませんでしたっけ・・?
(i)package (ファイル名)の役割
どこまで調べて質問に至ったのか書いてないので、丸投げに近いように感じます。
エラーになった、エラーにならなかったの経験のみでは調査としては不十分です。
~~paiza.ioについては単体ファイルでの実行になるので内部的にはデフォルトでpaiza.ioのパッケージが宣言されているのでは、と思います。
~~
とりあえず下記のような初心者向け記事に一通り目を通してください。
- 初心者のためのJava講座 > 【第13回】パッケージについて理解する
- [マンガで分かる Java入門講座 > 第9章 クラスとオブジェクト2
9-1. パッケージ](https://manga.crocro.com/?cat=java&pg=package)
上記の記事はあくまで例です。
おおよそ同じようなことが書いてあると思います。
目を通した上で分からないことを質問された方が良いですね。
(ii)プログラミングコンテストなどでjavaのソースコードを提出するときpackage (ファイル名)を書く必要性(提出するのはファイル単体,一つだけです。)
そのコンテストの運営の人に聞いてください。
2018/6/22 14:55 質問の方向性が変わったので回答を修正したうえで回答を追記します。
この質問読むと多少は分かるかと。
※GoogleでJavaのパッケージについて検索したら出てきます
Eclipseでもなんでもですが、パッケージを作ると、実際には「ディレクトリ」ができます。
記事にも書いてあるように「所属」であるためです。
java
1package test;
と書くと、
{プロジェクト名}/src/test
というディレクトリにjavaソースが設置されることとなります。
ただし、上記のようにpackage宣言しておきながらtestディレクトリになかったらどうなるでしょう?
これがpaiza.ioで起きている現象です。
パッケージをつけた場合は宣言したパッケージ名のディレクトリに置いた上で、そのパッケージ名の元に呼び出さなければなりません。
ご存知の通りpaiza.ioでは単体実行のみです。Webサービスなので宣言したパッケージのディレクトリは外部から勝手に作れません。
実行したときに実行結果にはエラーメッセージが表示されますよね?
Error: Could not find or load main class Main
Mainクラスは見つからなかった(またはロードできなかった)
paiza.ioおよびそのyoutubeの解説動画ではパッケージをつけていない(どこにも所属していない)Javaプログラムを呼び出そうとしているので、
当然 hoge.javaであれば そのhogeのMainクラスです。
パッケージが宣言されていると test.hoge.java のMainクラスを呼び出そうとします。
これがその違いです。
元の質問にあった役割について理解できたらおそらくその違いも想像できたのではないかと思います。
(オブジェクト指向に関わるところでもあるので、きちんと学んでおいた方が良いです)
投稿2018/06/22 01:01
編集2018/06/22 06:10総合スコア80765
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/22 05:41 編集
2018/06/22 05:51
退会済みユーザー
2018/06/22 05:55
2018/06/22 06:04 編集
退会済みユーザー
2018/06/22 06:11
退会済みユーザー
2018/06/22 06:12
2018/06/22 06:16 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/22 05:38
退会済みユーザー
2018/06/22 06:31