我有两个类(class)。它们都在构造函数中引用相同的变量。我很困惑,当我使用 this.name
时,我不需要更改参数的名称,Java 编译器知道我指的是主变量吗?
在第二个类示例中,参数名称已更改但未使用 this
。
这两个类之间有什么不同?
他们都被认为是“好的编程”吗?
class Account {
private string name;
private int amount;
Account(String name, int amount) {
this.name = name;
this.amount = amount;
}
}
class Account {
private string name;
private int amount;
Account(String n, int a) {
name = n;
amount = a;
}
}
最佳答案
在这种情况下 Account(String name, int amount)
如果您的代码显示 name = "ABC";
,它正在设置参数 name
,不是成员(member)。如果你想设置成员,你需要通过this.name
引用它。
因此 name = name;
什么都不做(将参数设置为自身)。 this.name = name;
将成员设置为参数。
关于java - 使用此差异的构造函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37802720/