2010-12-30 5 views
3

私はPHPのバックグラウンドから来ています。過去には名前空間が不足しているため、Zend Frameworkスタイルの「パッケージ」を使用しています。たとえば、抽象クラスのPlayerと子Player_Human、Player_DumbComputer、Player_Minimaxなどがある場合、私はPlayerをメインディレクトリに配置し、その子をディレクトリ/ Player /に配置します。 Javaで似たようなことをしようとしましたが、名前の衝突がありました。私はパッケージblah.Playerとクラスblah.Playerの両方を持っています。これを避けるにはどうすればいいですか?これに関する一般的なプラクティスは何ですか?Java:パッケージを使用するための規則?

+2

http://download.oracle.com/javase/tutorial/java/package/namingpkgs.html –

+0

Javaを使い慣れていない場合は、「効果的なJava」の書籍(第2版)をブロッホ – Raedwald

答えて

4

Javaのパッケージ名は常に小文字ですが、クラス名は常に大文字で始まり、ラクダの大文字小文字の区別はありません(アンダースコアなし)。だからあなたの構造は次のようになります。

- blah 
|- Player.java 
|- player 
    |- HumanPlayer.java 
    |- DumbComputerPlayer.java 
    |- MinimaxPlayer.java 
+2

はい、この例ではHumanPlayerはblah.playerとして参照されます。HumanPlayer – LudoMC

+4

これらの**は常に** **常にそうであるべきです** **このケースの規則は実際には慣習にすぎません)。 –

6

Code Conventions for the JavaTM Programming Languageから:

パッケージの命名規則:

ユニークなパッケージ名の接頭辞は常にすべて小文字のASCII文字で書かれたとすべきです現在のcom、edu、gov、mil、net、org、またはISO標準3166,1981に指定されている国を識別する英語の2文字コードの1つである。

パッケージ名の後続のコンポーネントは、組織独自の内部命名規則に従って異なります。このような規則は、特定のディレクトリ名の構成要素が部門名、部門名、プロジェクト名、マシン名、またはログイン名であることを指定することがあります。

クラスの命名規則:

クラス名は大文字各内部単語の最初の文字と混合する場合には、名詞である必要があります。あなたのクラス名を簡単かつ説明的に保つようにしてください。単語全体を使用する - 頭字語や略語は避けてください(URLやHTMLなどの省略形よりははるかに広く使われていない場合を除きます)。

関連する問題