Java代码中的“m”代表什么?

9
在Android编程中,特别是在Android Java类文件中,当"M"作为前缀放在单词前时,它代表什么意思?最近我在生成的主活动中经常看到它。在编程中,在哪些语句/术语前可以使用"M"作为前缀? 例如下面的例子:
mUserLearnedDrawer
mCurrentSelectedPosition
mFromSavedInstanceState
mUserLearnedDrawer

1
在类的成员变量和参数(例如构造函数中的参数)之间进行区分是一种惯例。 - Alexis C.
1
这是针对那些没有强大的集成开发环境自动以不同颜色显示成员变量的人而言的。为了弥补没有不同颜色的缺陷,他们使用不同的名称。 - Jack
1
很遗憾这个已经关闭了。不管怎样,这种风格被称为http://en.wikipedia.org/wiki/Hungarian_notation。 它在早期非常有用;但是在2015年,由于IDE现在可以了解您的源代码,如果可能的话应该避免使用它。 - GhostCat
@EddyG 为什么应该避免这个? - Blackbelt
@EddyG 为什么应该避免使用它?Google经常使用它。GoogleApiClient mGoogleApiClient;,带有按钮等。 - Ojonugwa Jude Ochalifu
2
这是个人口味问题。没有集成开发环境,有时候很难(轻松地)找到变量的来源。现在,所有体面的集成开发环境都直接提供这样的信息。 从这个意义上说,不需要的信息可以被视为浪费;因此讨论避免它是公平的。 我已经使用这种记号10多年了,我们决定在新项目中不使用它——我一点也不想念它。因为集成开发环境可以告诉我任何我需要知道的东西。 而谷歌的编码标准是谷歌的编码标准,不是我的。 - GhostCat
2个回答

11

字母m作为前缀意味着它是类的成员。 字母lv表示它是局部变量。 字母pm表示它是参数。

示例:

class Example
{
  Integer mMemberOfClass;

  public void someMethod(Object pmSomeParameter)
  {
    Integer lvSomeLocalVariable;

  }

}

4
这句话的意思是这个变量是该类的成员。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接