2011-07-06 125 views
4

“this”关键字的我有这样的代码来自Android开发网站复制:澄清的Java

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

这里阅读:https://smugjava.blogspot.in/2017/11/this-keyword-in-java.html –

回答

4

它是指在其onCreate()被称为是ExampleActivity实例。

一般而言,从Java Language Specification, 15.8.3

这可以仅在一个实例的方法,实例初始化或构造的主体中使用的关键字,或在一个类的一个实例变量的初始值设定。如果它出现在其他地方,则会发生编译时错误。

当作为主要表达使用时,所述关键字这表示一个值,该值是针对其实例方法被调用(§15.12)的对象的引用,或对所述对象被构造。这种类型是发生关键字的类别C。在运行时,所述类的实际对象的称为可以是C类或C.

2

this指最内部类的实例。在你的例子中,它指的是ExampleActivity,它的类型是OnClickListener,它被传递到setOnClickListener

0

是的, '这' 指的是封闭类的实例。