ラクダケースルールについては知っていますが、このmルールと混同しています。それは何の略ですか?私はPHP開発者です。 「我々」は、変数の最初の文字をタイプの指示として使用します。たとえば、ブール値の「b」、整数値の「i」などです。
「m」はJavaのことですか?モバイルの略ですか?混合?
この表記はAOSP(Android Open Source Project)から来ています Contributorsのコードスタイルガイドライン :
フィールドの命名規則に従う
- 非パブリック、非静的フィールド名はmで始まります。
- 静的フィールド名はsで始まります。
- 他のフィールドは小文字で始まります。
- パブリック静的最終フィールド(定数)はALL_CAPS_WITH_UNDERSCORESです。
リンクされたスタイルガイドは、コードがAndroidオープンソースプロジェクトに提供されることに注意してください。
個々のAndroidアプリのコードのスタイルガイドではありません。
多くのコーディングガイドラインでは、クラスの「メンバー」にmを使用しています。したがって、プログラミングしているときに、ローカル変数とメンバー変数の違いを確認できます。
とは m プレフィックス?
m メンバー変数またはデータメンバーを表します。つかいます m 非公開フィールドおよび非静的フィールドのプレフィックス。
使用する場合
private String mCityName;
private float mTemperature;
使用しない場合
public static int mFirstNumber;
public static final String mDATABASE_NAME;
私は何をしますか?
個人的に、私はそれを使用しません。コードがより複雑になり、混乱が読みやすくなります。コーディングにまだメモ帳を使用している場合、私には言葉はありませんが、最新のIDEでは、メンバー変数やローカル変数などを強調表示および色付けできます。
結論
つかいます? 「はい」または「いいえ」は個人的な選択です。
クラスのメンバー変数の場合、「m」は「メンバー」を意味します。多くのJavaプログラマーがこれを行いますが、最新のIDEでは、強調表示、マウスオーバーツールチップなどがあるため、必要ありません。
Clean Codeの本によると、それはきれいなコードではありません。
メンバー変数の前にmを付ける必要はありません。その上、人々は、名前の意味のある部分を見るために接頭辞または接尾辞を無視することをすぐに学びます。
どのコード規約が使用されるかは非常に個人的なものだと思います。次のプレフィックスを使用して変数に名前を付けることを好みます。
しかし、各プログラマーには独自のスタイルがあると思います。
前述のように、異なる変数に合わせてスタイルが設定されています。しかし、コード生成にも非常に便利です。 「Alt + Insert」を押すと、最も一般的なコード生成プロパティのウィンドウが表示されます。変数の「get」メソッドを生成する場合は、取得します。
public class Foo{
private int bar;
public int getBar(){
return this.bar;
}
public void setBar(int bar){
this.bar = bar;
}
}
しかし、「m、s」を宣言すると、次のようになります:
public class Foo{
private int mBar;
public int getBar(){
return mBar;
}
public void setBar(int bar){
mBar = bar;
}
}
自動的に生成され、コンストラクタから「m」または「s」が削除され、メソッド名が取得、設定されます。この後、フィールドの「get」および「set」は「m」なしで生成されます。 Andoroid Fle-> Setting-> Code Style-> Java-> Code Genenretion。そして絵のように作ります。たぶんそれが役立つでしょう。私の英語でごめんなさい。 Androidの設定
メンバー変数を「m」で開始することは、初期のAndroid/Googleエンジニアの個人的な好みのようであったため、推奨されました。
現在、このページはAndroid Code Styleルールと見なされているため、AOSPの貢献者ではない企業の開発者の喉にこのルールが強制されています。このルールには利点はありますが、ほとんどありません。 Googleは削除を検討する必要があります。それ以外の場合は、Androidアプリに対して、コードスタイルルールのいずれがオプションであるかを指定してください。
この請願書にサポートのコメントを追加してルールを削除してください https://code.google.com/p/Android/issues/detail?id=226814
このコードスタイルの利点の1つは、変数への参照のオートコンプリート中に、「m」と入力してメンバー変数のみを表示できることです。
また、クラス/インスタンスが「この変数は私のものであり、他の誰もそれに到達することはできない」と言っているように、「私の」を表していると言うこともできます。静的クラスとは異なりますが、クラスでのみ使用可能ですが、そのクラスのすべてのインスタンスで共有されます。円を描く場合は、各円の半径がどれくらい大きいかを知る必要があります
private double mRadius;
しかし、同時に、あなたが持つことができるサークルクラス内で、すべてのサークルを追跡するカウンターが必要です
private static int sCircleCount;
そして、現在持っているサークルの数を増やしたり減らしたりするための静的メンバーを用意します。
以下は命名規則です。
- 非パブリック、非静的フィールド名はmで始まります。
- 静的フィールド名はsで始まります。
- 他のフィールドは小文字で始まります。
- パブリック静的最終フィールド(定数)はALL_CAPS_WITH_UNDERSCORESです。
例:
public class MyClass {
public static final int SOME_CONSTANT = 42;
public int publicField;
private static MyClass sSingleton;
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
}
最新のIDE(Android Studio)を使用している場合は、読みやすくするために、メンバー変数にm、静的フィールドにsを使用しないでください。 Android Studioは、mまたはsを追加せずにそれらを区別できます。