我是否在我的代码中正确使用'this'关键字?

老栗子 2019-09-12 04:13:18

我正在寻找关于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; } } 我的问题是,如果我使用'this'是吗?每次使用像totalPrice或items ArrayList这样的变量时,是否应该使用“this”?








...全文
40 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38088241 2019-09-12
  • 打赏
  • 举报
回复

这没有错。但它会污染代码,因为它是多余的。我们都知道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?
weixin_38089851 2019-09-12
  • 打赏
  • 举报
回复

您使用this的方式绝对没有错,但是是多余的。您可以在不使用this的情况下编写相同的代码,并获得相同的结果。
weixin_38111003 2019-09-12
  • 打赏
  • 举报
回复

通常,“this”最常用的用法是在对象构造函数中。所以,你可以有一些东西一样...... public NewThing(int count, double price) { this.count = count; this.price = price; } 因此它主要用来识别与您要指定正在传入的参数的对象。因为变量名是相同的参数, “这”表示它是“这个对象”接收这些属性。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧