我正在寻找有关public class CashRegister {
private ArrayList<Double> items;
private int itemCount;
private double totalPrice;
public double getTotal() {
this.totalPrice = 0;
for (int i = 0; i < this.items.size(); i++) {
this.totalPrice = this.totalPrice + this.items.get(i);
}
return totalPrice;
}
}
关键字的一些指导。我刚刚了解了这个概念,这让我感到困惑。这是我的一段代码:
totalPrice
我的问题是我是否正在使用“这个”?每次我使用像items
或SetExceptionMask(exAllArithmeticExceptions);
ArrayList这样的变量时,我应该使用'this'吗?
答案 0 :(得分:2)
没错。但它污染了代码,因为它是多余的。我们都知道items
和totalPrice
是当前对象的字段(由此引用)。
以下是一段this
有意义的代码:
public class Test {
private String test;
public Test(String test) {
this.test = test;
}
}
您可能会看到test
的引用含糊不清。在构造函数内部,如果您只使用test
,您将不知道您是否正在访问传递给构造函数的Test
类型对象或引用String
的字段,在此如果您将访问该参考。因此this
用于确保您使用Test
类型对象的字段。
有一个名为shadowing
的概念。使用this
有助于避免陷入这样一种陷阱,即当你不在时,你会引用某些东西。
这个问题很有帮助: What is variable shadowing used for in a Java class?
答案 1 :(得分:1)
你使用this
的方式绝对不错,但是多余。您可以在没有this
es的情况下编写相同的代码,并获得相同的结果。
答案 2 :(得分:1)
通常,“this”的最常见用法是在对象构造函数中。所以你可以有一些像......
public NewThing(int count, double price) {
this.count = count;
this.price = price;
}
因此它主要用于标识您正在为其传递参数的对象。由于变量名称与参数相同,“this”表示接收这些属性的“this object”