我知道骆驼格规则,但我对这个m规则很困惑。它代表什么?我是PHP开发人员。“我们”使用变量的首字母来表示类型,例如'b'表示布尔值,'i'表示整数,等等。

“m”是Java的东西吗?它代表移动吗?混合吗?


当前回答

以下是命名约定:

非公共的、非静态的字段名以m开头。 静态字段名以s开头。 其他字段以小写字母开头。 公共静态final字段(常量)为all_caps_with_下划线。

例子:

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;
}

其他回答

我发现这种代码风格的一个好处是,在自动完成对某个变量的引用时,我知道我可以输入“m”来只看到成员变量。

很多编码指南使用m表示类的“成员”。当你在编程时,你可以看到局部变量和成员变量之间的区别。

m前缀是什么?

M代表成员变量或数据成员。非公共和非静态字段使用m前缀。

何时使用?

private String mCityName;
private float mTemperature;

什么时候不使用?

public static int mFirstNumber;
public static final String mDATABASE_NAME;

我做什么?

就我个人而言,我不使用它。它使代码更复杂,可读性更混乱。如果你仍然使用记事本编码,我没有文字,但现代ide能够高亮显示和着色成员和局部变量或其他任何东西。

结论

使用?“是”或“否”是你自己的选择。

如果它是类中的成员变量,'m'表示'成员'。许多Java程序员都这样做,尽管在现代ide中不需要这样做,因为你有高亮显示,鼠标在工具提示上,等等。

为了证明你绝对不应该在你的代码中使用这种命名变量的约定,我在下面传递一个来自父Android Studio的截图。

找到对象内的变量被特别排序,使m-variables低于您的本机变量。因此,通过在代码中以“m”为前缀来命名它们,就可以将它们隐藏在一个堆中。