22

PHP では、私たち (少なくとも優秀なプログラマー) は常に一般的な変数名を小文字で始めますが、クラス変数/オブジェクトは区別するために大文字で始めます。同様に、一般的なファイル名は小文字で始めますが、クラスを含むファイルは大文字で始めます。

例えば:

<?php
$number=123;
$string="a string";
$colors_array=array('red','blue','red');
$Cat=New Cat();
?>

慣習はJavaでも同じですか。つまり、オブジェクトは大文字で始まり、残りは小文字で始まりますか、それとも他の場所で読んだようにすべてが小文字で始まりますか?

4

8 に答える 8

60

命名はJava Code Conventionsで確認できます。

簡単な要約:

  • クラスの場合は、 を使用しますUpperCamelCase
  • クラスメンバーとローカル変数の使用lowerCamelCase
  • パッケージの場合は、リバース URI を使用します。org.acme.project.subsystem
  • 定数には、 を使用しますALL_CAPS
于 2009-01-05T18:20:27.503 に答える
28

通常、すべての変数は小文字で始まります。

int count = 32;
double conversionFactor = 1.5d;

すべての場合に静的定数を入れるのが好きな人もいます:

public static final double KILOGRAM_TO_POUND = 2.20462262;

頭字語を扱うときはさらに煩わしくなります。使用するかどうかについての実際の基準はありません。

HTMLHandler myHtmlHandler; 

また

HTMLHandler myHTMLHandler.

いずれにせよ、クラス名 (Object、String、HTMLHandler) は常に大文字で始まりますが、個々のオブジェクト変数は小文字で始まることに注意してください。

于 2009-01-05T18:21:21.183 に答える
8
  • 変数とメソッドLikeThis
  • ClassesLikeThis
  • CONSTANTS_LIKE_THIS
于 2009-01-05T18:21:17.830 に答える
4

慣習として、クラス名は大文字で始めます。変数名はキャメルケースです。変数がオブジェクトを参照している場合でも、小文字で始まります。

このページが役に立ちます。

于 2009-01-05T18:18:16.433 に答える
0

一部の人々 (私ではありません) は、インスタンス変数の前に「this」を付けて、メソッド変数とインスタンス変数を区別することを好みます。これにより、パラメーターを同じ名前のインスタンス変数に割り当てるときに発生する問題も修正されます。

public ConstructorMethod(MyVar variable) {
    this.variable=variable;
}

しかし、常にそのパターンを使用する必要があると感じる人もいますが、私はそれが好きではありません。メソッドとクラスを小さくしておくと、やり過ぎだと思います。

また、パラメータの命名パターンを使用する人もいます。これは (再び) コンストラクターからインスタンス変数に割り当てるときに便利です。

public ConstructorMethod(MyVar pVariable) {
    variable=pVariable;
}

通常、パターンはpVariableまたは_variableです。これよりも読みやすいので時々これを使用しますが、Javadoc が読みにくくなるという欠点があります。

いずれにせよ、これらのパターンのいずれかを常に使用するという考えはあまり好きではありません。知っておくと便利ですが、コード全体でそれらを区別するのに本当に助けが必要な場合は、Eclipse にそれらを異なる色で表示するように指示してください。

于 2009-01-05T19:02:54.847 に答える
0

規則は、コーディングしている個々の場所によって異なります。

一般に、私が見たものから、クラスはキャメルケース(最初に大文字)、メソッドは小文字で始まり、変数はいたるところで見ました(一部のキャメルケース、一部のキャメルケースには最初の文字が小文字です(編集:前述のとおり)上記では、これが標準です)、ハンガリー語表記のものもあります)。それはあなたのスタイルと、あなたが取り組んでいるプロジェクトが採用したスタイルによって異なります。

于 2009-01-05T18:18:52.563 に答える