我在代码中正确使用'this'关键字吗?

时间:2017-12-02 20:32:38

标签: java arraylist syntax this

我正在寻找有关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

我的问题是我是否正在使用“这个”?每次我使用像itemsSetExceptionMask(exAllArithmeticExceptions); ArrayList这样的变量时,我应该使用'this'吗?

3 个答案:

答案 0 :(得分:2)

没错。但它污染了代码,因为它是多余的。我们都知道itemstotalPrice是当前对象的字段(由此引用)。

以下是一段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”