Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么变量名通常以字母';m';?_Java_Android_Naming Conventions - Fatal编程技术网

Java 为什么变量名通常以字母';m';?

Java 为什么变量名通常以字母';m';?,java,android,naming-conventions,Java,Android,Naming Conventions,查看Android教程,例如,我注意到几乎所有变量都以字母“m”开头命名。这是什么约定?它起源于何处?'m'表示该类成员。所以,如果您不使用IDE突出显示您的成员,那么您将了解它是一个名为的成员,它代表成员。我个人认为这个约定没有帮助,但它是主观的。'm'表示变量是类的成员变量。正如前面已经回答的,这个前缀表示变量是成员 有时,如果您发现一些变量以“i”或“s”开头,人们会使用其他前缀。它也可能是的一个变体,不仅在java中,我在cocos2d+box2d示例中看到过类似的约定,其中一些变量以m

查看Android教程,例如,我注意到几乎所有变量都以字母“m”开头命名。这是什么约定?它起源于何处?

'm'表示该类成员。所以,如果您不使用IDE突出显示您的成员,那么您将了解它是一个名为的成员,它代表成员。我个人认为这个约定没有帮助,但它是主观的。

'm'表示变量是类的成员变量。

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


有时,如果您发现一些变量以“i”或“s”开头,人们会使用其他前缀。它也可能是

的一个变体,不仅在java中,我在cocos2d+box2d示例中看到过类似的约定,其中一些变量以m_开头,但其他变量则不是,非常令人困惑


b2World* world;
GLESDebugDraw *m_debugDraw;

我想把C++ Box 2D变量与Obj-C变量区分开来。

“m”前缀的使用比简单地表示“member”变量更为具体:它表示“非公共、非静态字段名”。

这里的m表示member变量

它有两大优势:

  • 如果看到它,您会立即将其识别为成员变量
  • 按m键,您将通过自动完成器获得所有成员。(其他答案中没有这一条)
      • 非公共、非静态字段名以m开头
      • 静态字段名以s开头
      • 其他字段以小写字母开头
      • 公共静态最终字段(常量)都是带下划线的大写字母

      请注意,这是用于编写Android源代码的。对于创建Android应用程序来说,可能更有用。

      我总是把“m”读作“我的”。很高兴知道这没那么愚蠢,萝莉也不明白这个惯例。既然可以使用此,为什么还要添加一个奇怪的“m”?该关键字的全部意义在于表明您正在处理一个类成员变量/函数。好的,“m”被误解得很厉害。我认为是否使用IDE并不重要,所有变量都应该遵循这个约定。通过使用这种约定,人们可以快速查看眼前的代码,并容易理解变量的范围,我发现这对于Android活动非常重要。我不必总是通过IDE追踪变量来打破我的思维链,这对于集中注意力要好得多。@AutoM8R在我看来,它被误解的事实是它没有帮助的原因。你怎么能确定编写代码的人“正确地”使用了约定?@W.K.S是的,
      这确实表明下面的内容是一个成员,但我也不会用它来混乱我的代码。如果您选择了正确的短方法,那么无论变量是局部变量还是成员都不应该混淆。当需要消除歧义时,只使用前缀
      this.
      。很棒的链接,不仅仅是前缀。这个链接是指编写应用程序吗?或者只是为了打开android project?我在尝试打开该页面时出现“权限不足”错误。也许有人可以在这里发布一些内容?@Cosmin评论太长了,但与问题相关的部分是:“非公开、非静态的字段名以m开头。”嗨!这不再使用,这是错误的变量命名!它叫匈牙利符号。这在AOSP内部的平台上启动了生命,因此它坚持了AOSP风格。Android Studio和IntelliJ IDEA根据成员资格(实例或静态)直观地区分字段名称。默认情况下,IDE将强制执行正确的成员资格、可见性和类型,因此命名约定不会在此处添加任何内容。干杯你能为这个谷歌文档提供一个URL吗?谢谢页面引用:注意:这些规则适用于Android平台,Android应用程序开发人员不需要这些规则。应用程序开发人员可能会遵循他们选择的标准,例如自动完成建议的.Plus 1!Java中已经有一个内置的东西,叫做this;-)这看起来像是过早的优化