Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们为什么不使用';这';在盖特?_Java_Oop_Object - Fatal编程技术网

Java 我们为什么不使用';这';在盖特?

Java 我们为什么不使用';这';在盖特?,java,oop,object,Java,Oop,Object,例如,假设我们有一个名为car的对象,它是Cars类的一部分,并且具有color属性。假设我们有颜色的吸气剂,这样: public String getColor(){ return color; } 但它不应该是这种颜色吗?如果没有,原因是什么?这是多余的。通常,只有在方法签名中有同名参数时,才使用this.something。典型的例子是构造函数: public MyClass(String val1, String val2) { this.val1 = val1;

例如,假设我们有一个名为
car
的对象,它是
Cars
类的一部分,并且具有
color
属性。假设我们有颜色的吸气剂,这样:

public String getColor(){
  return color;
}

但它不应该是这种颜色吗?如果没有,原因是什么?

这是多余的。通常,只有在方法签名中有同名参数时,才使用this.something。典型的例子是构造函数:

public MyClass(String val1, String val2) {
    this.val1 = val1;
    this.val2 = val2;
}

在过去,当IDE中没有语法突出显示(包括成员变量和局部变量的不同表示)时,使用它的频率更高。然后
这个
被用来更容易区分这两类变量。

这是多余的。通常,只有在方法签名中有同名参数时,才使用this.something。典型的例子是构造函数:

public MyClass(String val1, String val2) {
    this.val1 = val1;
    this.val2 = val2;
}

在过去,当IDE中没有语法突出显示(包括成员变量和局部变量的不同表示)时,使用它的频率更高。然后使用
这个
可以更容易地区分这两种类型的变量。

您在这里隐式地使用
这个
。当您“遗漏”了“访问”字段或调用方法的对象时。。。这与说
this.field
this.foo()
是一样的,当然,除非您使用的名称引用了一个局部变量。所以,准确地说:当您有如下代码时

void setter(Whatever foo) {
  this.foo = foo;
当然,为了区分字段foo和隐藏该字段的局部变量foo,您必须使用
这个

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


这就是一切

您在此处隐式使用
。当您“遗漏”了“访问”字段或调用方法的对象时。。。这与说
this.field
this.foo()
是一样的,当然,除非您使用的名称引用了一个局部变量。所以,准确地说:当您有如下代码时

void setter(Whatever foo) {
  this.foo = foo;
当然,为了区分字段foo和隐藏该字段的局部变量foo,您必须使用
这个

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


这就是一切

“this”始终表示当前对象。所以如果你说这个。颜色,它和简单地说“颜色”完全一样。您可以不表示您应该:)

“this”始终表示当前对象。所以如果你说这个。颜色,它和简单地说“颜色”完全一样。你可以这样做并不意味着你应该这样做:)

因为这没有什么区别。可以这样做,但不需要这样做。结果完全一样。什么时候不包括“这个”是个坏主意?这是一个意见问题。我发现不必要地使用
这个
杂乱无章、烦人且难以阅读,但我知道有人持完全相反的观点。我很欣赏这种快速回归。今天我在寻找每日限额。。。我非常非常感激;-)因为这没什么区别。可以,但不一定。结果完全一样。什么时候不包括“这个”是个坏主意?这是一个意见问题。我发现不必要地使用
这个
杂乱无章、烦人且难以阅读,但我知道有人持完全相反的观点。我很欣赏这种快速回归。今天我在寻找每日限额。。。我非常非常感激;-)啊,好的。谢谢“然后用它来更容易地区分这两种类型的变量。”如果在您的示例中删除
this.
,结果将完全不同。这不仅是为了让您可读,而且也为了让编译器知道要使用什么变量。@AxelH在我的第二段中,我解释了为什么
这个
在不需要它的情况下使用得更频繁。这与前面的代码示例没有任何关系,在该示例中,
需要此
。但您的原因是在语法突出显示之前,更容易区分。正如您在第一部分中所说的那样,这确实需要
。所以第二部分说的是相反的,所以这是一个好的和坏的答案^^^啊好的。谢谢“然后用它来更容易地区分这两种类型的变量。”如果在您的示例中删除
this.
,结果将完全不同。这不仅是为了让您可读,而且也为了让编译器知道要使用什么变量。@AxelH在我的第二段中,我解释了为什么
这个
在不需要它的情况下使用得更频繁。这与前面的代码示例没有任何关系,在该示例中,
需要此
。但您的原因是在语法突出显示之前,更容易区分。正如您在第一部分中所说的那样,这确实需要
。第二部分的说法正好相反,这是一个好的和坏的答案^^你忘了说这是隐式的,因为在这个范围内没有其他同名变量。最好的例子是setter@AxelH非常有效