當方法
public Complex(int real, int imaginary) {
this.real = real;
this.imaginary = imaginary;
}
的身體被執行時,它是在結構Complex
的特定實例執行。您可以使用關鍵字this
來引用代碼正在執行的實例。因此,你能想到的方法
public Complex(int real, int imaginary) {
this.real = real;
this.imaginary = imaginary;
}
的身體作爲閱讀
public Complex(int real, int imaginary) {
assign the parameter real to the field real for this instance
assign the parameter imaginary to the field imaginary for this instance
}
總是有一個隱含的this
這樣下是等價的
class Foo {
int foo;
public Foo() {
foo = 17;
}
}
class Foo {
int foo;
public Foo() {
this.foo = 17;
}
}
然而,當地人優先超過會員以便
class Foo {
int foo;
public Foo(int foo) {
foo = 17;
}
}
分配17
所以變量foo
是方法的參數。如果您希望在實例成員分配給具有相同名稱的本地方法的情況下,則必須使用this
來引用它。
爲什麼不能在[MSDN](http://msdn.microsoft.com/en-us/library/dk1507sz.aspx)查找? 「this'關鍵字指的是類的當前實例。」 – Vlad 2011-06-07 19:49:22
vlad - 爲什麼不張貼在stackoverflow? – JonH 2011-06-07 19:50:06
@Vlad - 這個問題對許多SO問題都有效。 SO的目的是成爲一個可以作爲參考的地方。首先,不是每個人都知道'MSDN'(所以指出他們有一個好主意)。其次,OP給出了背景。有效的問題IMO。 – keyboardP 2011-06-07 19:54:19