Java 哪些字段名具有前缀';m';?
公约规定:“非公共、非静态字段名以m开头,其他字段以小写字母开头”。它是只引用类字段(如示例1)还是引用所有字段(如示例2) 例1Java 哪些字段名具有前缀';m';?,java,naming-conventions,Java,Naming Conventions,公约规定:“非公共、非静态字段名以m开头,其他字段以小写字母开头”。它是只引用类字段(如示例1)还是引用所有字段(如示例2) 例1 public class One { private int mFieldOne; private int mFieldTwo; public void someMethod(){ int methodFieldOne; int methodFieldTwo; } } 例2 public class Two {
public class One {
private int mFieldOne;
private int mFieldTwo;
public void someMethod(){
int methodFieldOne;
int methodFieldTwo;
}
}
例2
public class Two {
private int mFieldOne;
private int mFieldTwo;
public void someMethod(){
int mMethodFieldOne; //see m here
int mMethodFieldTwo; //see m here
}
}
在第二个示例中,
mmethodfeldone
和mmethodfeldtwo
不是字段,只是someMethod
的局部变量,因此命名约定不适用。它只引用字段,字段是类成员(m
)。其他变量是局部变量。方法访问修饰符(private)内部不可接受,编译时错误。“非公共、非静态字段名以m开头”表示实例变量,这是第一种情况。在方法中,它将以小写字母开头。这是Android贡献者指南,而不是Java社区
遵循字段命名约定非公共、非静态字段名
从m开始
静态字段名以s开头
其他字段以小写字母开头
公共静态最终字段(常量)都是带下划线的大写字母
无论如何,我认为这是不必要的,也不符合样式。注意那些“字段”“在示例中的方法不编译时,
private
修饰符在那里是非法的。那应该已经打开了一个灯泡:)@BalusC抱歉,这只是一个例子。我复制粘贴的时候没有太多的注意。我的观点是,你不能调整局部变量的可见性,也不能使它们成为静态的,所以“非公共的,非静态的”这句话已经没有意义了。@bergmam:命名私有字段和静态字段的条件约定(在我看来绝对糟糕和无用)。其他似乎认可的特别约定包括:onXXX表示事件方法,onXXX表示事件侦听器接口名称,唯一侦听器注册方法而不是常见的多侦听器注册(setOnXXXListener而不是addXXXListener/removeXXXListener)。没有那么多,但不够好,不是真正的增值。安卓:对不起,这只是一个例子。我做了复制和粘贴没有采取太多的照顾。我已经修好了。