java - 为什么我们不在 getter 中使用 'this'?

标签 java oop object

<分区>

例如,假设我们有一个名为 car 的对象,它是 Cars 类的一部分,并且它有一个 color 属性。并假设我们有一个颜色 setter/getter :

public String getColor(){
  return color;
}

但不应该是this.color吗?如果不是,为什么?

最佳答案

您在这里隐含地使用了this。当您“离开”您“访问”字段或调用方法的对象时......那么这与说 this.fieldthis.foo() 当然,除非您使用的名称指的是局部变量。所以,准确地说:当你有这样的代码时

void setter(Whatever foo) {
  this.foo = foo;

当然,您必须使用this 来区分字段 foo 和局部变量foo,即遮蔽那个领域。

稍有经验的 Java 程序员都知道这一点。因此,最好不要在此处写下 this。请记住:您编写代码是为了让您的人类读者理解正在发生的事情。编译器和 IDE 都可以使用它……或者不使用它。但对于您的人类读者而言,当您在此处省略此关键字时,它只是意味着较少要处理的信息。

这就是这个的全部内容。

关于java - 为什么我们不在 getter 中使用 'this'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46072670/

相关文章:

javascript - 在对象数组中查找相等的值

java.lang.NoClassDefFoundError : Failed resolution of: Landroid/support/v7/appcompat/R$drawable; 错误

java - 可比类型的 SortedSet

c# - 面向对象的 n 层设计。我是不是抽象得太多了?还是不够?

javascript - 您可以将对象类型设置为自定义名称而不是 Javascript 中的函数吗

javascript - JS封装问题: "this.foo = new function(){...};" vs "this.Bar = function(){..}; this.foo = new Bar();"

javascript - 为什么在 javascript 数组中自动创建索引?

javascript - 从数组中选择随机加权对象

java - Gson:指定类或字段的命名策略

JavaFX 全屏应用程序始终位于顶部