2010-01-13 75 views

回答

5

在大多数情况下,您可以使用任何你想要的。如果您的方法参数或局部变量具有相同的名称,那么您需要使用this来区分实例变量。始终如一!

+1

或者一个局部变量(不太常见)。如果你有一个本地班,那么这是一团糟。 – 2010-01-13 04:04:47

4

你也可以做,这只是一个口味问题,但我看到很多Java代码使用“this”。因为该方法的参数很多时候与成员字段的名称相同。

你可能会说使用“this”。也有助于可读性,因为你立即知道它是一个成员,但你也可以争辩说“这个”。伤害可读性,因为它只是一个无关的词。

+0

但因为如果你的参数是相同的单词,你必须使用这个,那么可能最好是为了约定而坚持它:) – ajsie 2010-01-13 04:03:22

+0

@noname - 如果你的参数名和实例名是相同的,那么你应该为变量选择更好的名称。这有助于可读性远远超过“这个”。 – Robin 2010-01-13 14:59:53

2

我只在两种情况下使用this.

  1. 去外地 和本地的同名间的歧义,在一个setter 例子;
  2. 当我的方法有that 参数,因为thisthat 使良好的可读代码。
+0

哦,即时通讯新的Java,还没有达到“那”。很高兴事先知道我在书中会遇到什么:) – ajsie 2010-01-13 04:02:14

+1

你可能不会在书中找到它 - 这只是一个很好的参数名称,用于处理同一类的另一个对象。比如说,一个Point类可能有distanceTo(Point that)方法。然后减去“this.x - that.x”听起来比“x - that.x”更好听。 – 2010-01-13 04:08:26

+0

@Carl - 'dest'或'destination'不是更好的名字吗? – Robin 2010-01-13 15:02:22

0

只是变量名称是好的&使用参数变量使用“this”。

1

使用this. - 它可以帮助其他程序员直观地识别成员字段的用法,并使重构更容易(例如,当考虑将方法移动到另一个类时)。

0

我是用语言编程时使用语言功能的粉丝。因此,我会建议不要使用“this”。在一个实例变量上,除非需要将它与在相同名称上冲突的方法参数区分开来。