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非常有效