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

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


当前回答

根据清洁代码书,这不是一个干净的代码。

你不需要在成员变量前面加上m。此外,人们很快就学会忽略前缀或后缀来看到名称中有意义的部分。

其他回答

如果你有这样的问题

你的IDE生成setter /getter,你最终得到getmName() 和setmName ()

不要忘记下一步(设置/编辑器/代码样式/Java/代码生成):

更新:我们在Kotlin中不使用这样的东西(所以最好切换到它,不再使用前缀)

也可以说它代表“我的”,就像在类/实例中说的那样:“这个变量是我的,没有其他人可以得到它。”与静态不同的是,虽然它可能只对类可用,但它由该类的所有实例共享。就像你在画圆,你需要知道每个圆的半径有多大

    private double mRadius;

但与此同时,你需要一个计数器来跟踪所有的圆,在circle类中

    private static int sCircleCount;

然后只有静态成员来增加或减少你目前拥有的圆的数量。

m前缀是什么?

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

何时使用?

private String mCityName;
private float mTemperature;

什么时候不使用?

public static int mFirstNumber;
public static final String mDATABASE_NAME;

我做什么?

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

结论

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

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

考虑到可读性,如果你使用的是像Android Studio这样的现代IDE,就不应该再使用m代表成员变量,s代表静态字段的惯例了。Android Studio可以在不添加m或s的情况下区分它们。