为什么变量名通常以字母'm'开头?

Kal*_*lja 233 java android naming-conventions

看一下Android教程,比如Notepad教程,我注意到几乎所有的变量都以字母"m"开头.这是什么惯例,它来自哪里?

Mat*_*hen 290

它代表会员.我个人觉得这个会议没有用,但这是主观的.

  • 我总是把'm'称为'我的'.很高兴知道这不是那么愚蠢,哈哈 (130认同)
  • 好吧,"我"被误解了.我认为您是否使用IDE并不重要,所有变量都应遵循此约定.通过使用这个约定,可以快速查看它们前面的代码并轻松理解变量的范围,我发现这对Android活动非常重要.我不必通过总是在IDE中追溯变量来打破我的思路,这对于集中目的来说更好. (53认同)
  • 我也从不理解这个惯例.为什么在使用`this`时添加一个奇怪的'm'?该关键字的重点是表明您正在处理类成员变量/函数. (21认同)
  • @ AutoM8R在我看来,它被误解的事实是它无益的原因.你怎么能确切知道编写代码的人是否"正确地"使用了这个约定? (17认同)
  • @WKS是的,`this`确实表明接下来是一个成员,但我也不会把我的代码弄乱.如果你对简短的方法,变量是本地的还是成员不应该混淆.当需要消除歧义时,只用`this`作为前缀. (5认同)
  • @ AutoM8R它没有被误解.我们理解它,并且不喜欢它.如果我使用IDE,文本将以一种颜色立即告诉我它是什么.我永远不会使用IDE,所以这对我来说只是丑陋的语法.许多其他人都有这种感觉,这就是它的价值所带来的问题.通过适当的命名和编写良好的代码,它应该是显而易见的,而不是标记什么是成员,什么不是. (3认同)

小智 104

请参阅贡献者的代码样式指南:遵循字段命名约定.使用"m"前缀更具体,只是表示"成员"变量:它是"非公共,非静态字段名称".

  • 很棒的链接,不只是前缀. (3认同)

Dan*_*tti 83

根据Android源代码文档:

  • 非公开的非静态字段名称以m开头.
  • 静态字段名称以s开头.
  • 其他字段以小写字母开头.
  • 公共静态最终字段(常量)是ALL_CAPS_WITH_UNDERSCORES.

请注意,这是用于编写Android源代码.要创建Android应用,Google Java样式指南可能会更有帮助.

  • 从页面引用:*注意:这些规则适用于Android平台,Android应用程序开发人员不需要这些规则.应用开发者可以遵循他们选择的标准,例如[Google Java风格指南](https://google.github.io/styleguide/javaguide.html).* (5认同)
  • 您能否提供此Google文档的网址?谢谢! (2认同)
  • http://source.android.com/source/code-style.html#follow-field-naming-conventions (2认同)

Kla*_*aus 39

m在这里表示一个m ember变量.

它有两大优势:

  • 如果你看到它,你立即将它识别为成员变量.
  • 按m,您将通过自动完成程序获得所有成员.(这个不在其他答案中)

  • 已经有一个内置于Java的东西 - 它被称为这个;-) (11认同)
  • 加1为自动完成建议! (5认同)

Vla*_*nov 16

'm'表示班级成员.因此,如果您不使用IDE突出显示您的成员,那么您将了解它是由其名称成员


sta*_*ker 5

正如已经回答的那样,这个前缀表示变量是成员.

如果您发现一些以"i"或"s"开头的变量,人们会使用其他前缀,它也可能是匈牙利表示法的变体