2012-04-27 10 views
10

私は2年前にJavaでプログラミングを始めました。当時の私のプロジェクトの上級者は、作成されているオブジェクトの名前に「obj」を追加するようにアドバイスしました。Javaのオブジェクトの命名規則

例:ここでは

Car objCar = new Car("Ferrari"); 

objCarは話していますものです。しかし、スタックオーバーフローで多くの人がそれに反対していましたが、これでオブジェクトの命名が行われるべきではありません。コレクションの使用時に命名規則を明記していますが、一般クラスのオブジェクトが作成されると混乱します。

誰かがそれに光を当てることはできますか?

+2

プリミティブ型以外のJavaのすべてがオブジェクトです。すべての変数名に 'obj'を追加しますか? – Gabe

+0

この 'obj ...'古いものからのものなら。 –

+1

あなたの属性を識別するのがより簡単です...なぜ "obj"でないのですか – Neifen

答えて

25

ちょうどそれをcarと呼んでください。 Hungarian notationは、Sun/Oracleでは使用されません。

の使用方法については、のように指定します。しかし、変数名に型を示す必要はありません。すでに変数宣言で型を指定しています。 IDEにマウスオーバーすると、変数のタイプが表示され、情報が常に利用可能になります。

変数名とメソッド名にはlowercaseStartingCamelCase、クラス名にはUppercaseStartingCamelCaseを使用する必要があります。

Sun/Oracleがどのように処理しているかを知りたい場合は、Code Conventions for the Java Programming Languageを読むことができます。

+0

オブジェクトに名前を付ける際の基準は何ですか?初めに小文字の手紙を書いたクラス名だけ? –

+0

@Ajjそれは、それが何をしているのかと同じように、意味のある名前を付けることを検討してください。これが「標準」です。文法基準を意味する場合、変数名は小文字で始まり、camelCaseを使用します。 –

+0

アクセサーとミューテーターメソッドの命名法は問題ありません。私はちょうど 'Car'、 'Student'、 'Machine'などの一般的なクラスと混同しています。 –

2

オブジェクトの名前を指定すると、読み込みとリファクタリングが容易になります。

1

javaのオブジェクトの命名規則は単なる名前です。 例えばハンガリー語表記の

Car car = new Car("Ferrari"); 

残骸があるため添加IDEのナビゲーションのために設けられた支持体の主に放棄されています。

+0

だからこれは主にどのように行われているのですか? –

-1

あなたがシニアであることは、結局のところ、あなたの疑問に関連して、 という命名規則を提案することができます。すべてのクラス名が最初の大文字で始まった であることを知っているので、 オブジェクトを作成する必要があるときは "MyTest"クラスを "mytest"にする必要があります。 オブジェクト名はこの形式にする必要があります。ジャカルタ プロジェクトのメフィストによると、私はこのタイプの対流を見つけました。それは次の通りです。 です。ジャカルタ以外には、IDEを含むSun API も開発中です。 希望、それはあなたを助けるでしょう。私は新しいです。あなたの役に立つ情報に感謝します。

+0

マノイ、それはあなたが新しくなったようです。親愛なるなど、SOの用語はサポートされておらず、答えはコード形式である必要はありません。 – kosa

+0

お寄せいただきありがとうございます。 –

0

小文字のクラス名はSun/Oracle標準です。

あなたが会社のために働いている、それは変更になる場合があり、プロジェクトの命名規則に応じて、

Car car=new Car(); //good to follow 

それはSingleton patternであれば、あなたはあなたの例では、少しも自明であるような

private static final Car singletonCar=new Car(); 
+1

フィールド名でシングルトンを識別しないでください。それらがシングルトンであるという事実は、フィールドが初期化されたときにのみ可視であるべきです。何か他のものが必要な場合、それは間違って行われていることに関するシグナルです。あなたの例では、間違ったことは、Car-singletonの複数のインスタンスを許可することです。 – Torben

+0

edited.thereはシングルトンを作成する多くの方法があります。そのような命名規則は読みやすさのためだけに維持されています。 –

+1

シングルトンのアイデアは、オブジェクトの1つのインスタンスのみを初期化できることです。最後のフィールドでは、2つのCarオブジェクトを作成できます。 Carオブジェクト自体に制限を設定する必要があります。シングルトンを初期化することは、かなりよく文書化されています。 Googleにお知らせください。シングルトンへの参照を取得したら、それをフィールド名にシングルトンとしてラベルする必要はありません。シングルトンは、ユーザーが初期化後に知る必要がないような堅牢な方法で実装する必要があります。多くのスレッドで共有されている他のオブジェクトと同様に動作するはずです。 – Torben

4

の下に名前を与えることができます。現実には、オブジェクトタイプ "Car"のフィールドを "car"と名付けることは決してありません。同様に、 "Integer"型を "integer"と名付けることもありません。

代わりに、フィールドが使用されていることを読者に知らせる使用名。いくつかの例:

private Transport preferredTransportMethod; 

private int invoiceCounter; 

プレフィックスフィールドタイプは一般的にJavaではありません。しかし、クラスメンバーには、セッターメソッドでの偶発的な自己割り当てを防ぐために、小文字の "m"という接頭辞が付いていることがあります。

private long mTripDurationMillis;