17

まず、 Java, A Beginner's Guide, 4th Editionで Javaを学ぼうとしています。OS として Ubuntu を使用し、IDE として Netbeans を使用しています。Netbeans を使用する場合、クラスを作成するためにプロジェクトを作成する必要があります。

これが私のHello Worldアプリです。

class First{
    public static void main(String args[])
    {
        System.out.println("Hello!");
    }   
}

しかし、これは多くのエラーを返します。package first;私のJavaクラスの一番上の行に行を置くと、それが実行されます。しかし、この本はパッケージ用語を使用していません。これは Netbeans のルールですか、それともこれについて知っておくべきことはありますか?

4

4 に答える 4

20

クラスをパッケージに入れる必要はありません。ただし、ほとんどの場合、これは良い考えです。これは、Netbeans が積極的にユーザーに奨励しようとしていることです。

小規模なプロジェクトの場合は、既定のパッケージ (つまり、packageステートメントのないファイル) を使用しても問題ありません。ただし、プロジェクトが成長して外部ライブラリを追加し始めると、悪いことが起こる可能性があります。他の誰かがデフォルトのパッケージを使用することに決め、たまたま同じ名前のクラスがあった場合はどうなるでしょうか? 両方が同じパッケージに含まれているため、衝突が発生する可能性があります。

ファイル構造もパッケージを反映する必要があります。つまり、 のファイルはpackage com.myurl.helloworldというフォルダに配置する必要がありますcom/myurl/helloworld。これも上記と同じ理由です。

また、おそらくここまで学習したことがないので、デフォルト パッケージからクラスをインポートしたり、デフォルト パッケージ クラスで package-private 可視性修飾子を使用したりすることはできません。

于 2013-07-22T22:02:50.557 に答える
12

これは、Java, A Beginner's Guide, 4th Edition の作成者が「デフォルト パッケージ」を使用した可能性が高いためです。この方法では、パッケージを含める必要はありません。パッケージは名前空間宣言です。

名前空間宣言とは一体何だ!? 名前空間宣言は、クラスを編成するために作成される単なるパッケージです。たとえば、GUI などに複数のクラスを用意し、アルゴリズムに複数のクラスを用意する場合、それらをブレンドすると、常に少し混乱します。ただし、それらを異なるパッケージに分類することは優れたソリューションです。

他の人があなたのコードを見る場合に従うべき命名規則もあります。パッケージは、トップレベル ドメインにちなんで命名する必要があります。私は SourceForge プロジェクトを作成する傾向があり、最終的には次のようになります。

net.sourceforge.softwarename.securitynet.sourceforge.softwarename.gui、など...

また、パッケージに名前を付けるときに大文字を使用しないでください。詳細はこちら

プログラミングを学んでいると、このような状況に遭遇することがたくさんあります。それらはすべてゲームの一部です。自分で少し理解する必要があります。

私にできる最善のことは、Eclipseをお勧めすることです。また、Java を学習するときは、IDE をまったく使用しないことをお勧めします。それは、独立してコーディングすることを学ぶからです。ただし、それはあなた次第です。

于 2013-07-22T21:53:41.293 に答える
2

いいえ、独自のファイルにある別のクラスにパッケージをインポートする場合を除き、パッケージをクラスに入れる必要はありません。これは、保護された型変数を非公開にしたくないが、サブクラス (または子クラス) にアクセスさせたい場合にのみ使用します。クラスの公開ステートメントも欠落しているため、次のようになります

public class First{
    public static void main(String[] args){
          System.out.println("Hello!");
       }


}
于 2013-07-24T01:27:55.017 に答える
1

Package は、関連するクラスとインターフェースのグループを含むディレクトリを表します。

パッケージは、関連するクラスとインターフェイスのセットを編成する名前空間です。概念的には、パッケージはコンピューター上のさまざまなフォルダーに似ていると考えることができます。HTML ページを 1 つのフォルダーに、画像を別のフォルダーに、スクリプトまたはアプリケーションをさらに別のフォルダーに保持することができます。Java プログラミング言語で作成されたソフトウェアは、数百または数千の個別のクラスで構成されている可能性があるため、関連するクラスとインターフェイスをパッケージに配置して整理することは理にかなっています。

以下に、Java パッケージに関するいくつかの良い議論を見つけることができます。

于 2013-07-22T23:15:03.273 に答える