我从Android开发者网站复制了这段代码:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
...
}
我想知道“this”关键字究竟是指什么?它是指“ExampleActivity”类吗?一般来说如何找到“这个”指的是什么?
答案 0 :(得分:4)
它指的是ExampleActivity
已被调用onCreate()
的实例。
一般来说,来自Java Language Specification, 15.8.3:
关键字this只能在实例方法,实例初始化程序或构造函数的主体中使用,或者在类的实例变量的初始化程序中使用。如果它出现在其他任何地方,则会发生编译时错误。
当用作主表达式时,关键字this表示一个值,该值是对调用实例方法的对象(第15.12节)的引用,或者是对正在构造的对象的引用。其类型是C类,其中出现关键字。在运行时,引用的实际对象的类可以是C类或C的任何子类。
答案 1 :(得分:2)
this
指的是最内层的类实例。在您的示例中,它引用ExampleActivity
,其类型为OnClickListener
,并传递给setOnClickListener
。
答案 2 :(得分:1)
在实例方法或 构造函数,
this
是对它的引用 当前对象 - 其对象 正在调用方法或构造函数。 你可以参考任何一个成员 实例中的当前对象 方法或构造函数使用this
。
参考(来自Sun Java教程):
答案 3 :(得分:1)
“this”是对当前对象的引用。
在您的情况下,它引用ExampleActivity类的实例。
http://download.oracle.com/javase/tutorial/java/javaOO/thiskey.html
答案 4 :(得分:0)
是的,'this'指的是封闭类的实例。