我是java的初学者,慢慢开始感受这种语言.
我很难理解"这个"变量.
例如,哪个更好..为什么?
public class Foo{
int a;
public Foo(int _a){
a = _a;
}
}
Run Code Online (Sandbox Code Playgroud)
VS
public class Foo{
int a;
public Foo(int _a){
this.a = _a;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
就个人而言,我讨厌那些使用下划线或"m_"来区分变量的约定.这就是IDE要明确的内容.
您this用来清楚地描述属于当前实例的变量.
你的例子都没有任何优势.您可以通过查看生成的字节代码向自己证明.如果你使用javap,你会看到两个编译成相同的代码.
在我看来,它更多地与你自己和其他程序员的可读性有关.良好的IDE,如IntelliJ,使用突出显示和颜色编码,使其更清晰.
绝对需要的一种情况是方法参数和私有成员之间存在名称冲突.然后你必须使用this消除歧义哪个是编译器:
public class Foo {
private int x;
public void setX(int x) {
this.x = x; // this is required here.
}
}
Run Code Online (Sandbox Code Playgroud)