我知道this
关键字是对当前对象的引用,但我在Android应用程序中实现多个接口时感到困惑。
实施例。我像这样创建新的Button
:
public class Example extends Activity implements View.OnClickListener, View.OnTouchListener {
@Override
...
// override OnClick and OnTouch
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 'this' refer to context in Activity
Button button = new Button(this);
// 'this' refer to OnClickListener
button.setOnClickListener(this);
// 'this' refer to OnTouchListener
button.setOnTouchListener(this);
}
}
程序如何知道要引用的对象?
在创建新的Button
而不是OnClickListener
时,程序如何知道必须将Activity中的上下文作为参数传递?
感谢。
答案 0 :(得分:2)
this
指的是您的Example
。
关于你在这里所写的内容:
// 'this' refer to context in Activity
Button button = new Button(this);
// 'this' refer to OnClickListener
button.setOnClickListener(this);
// 'this' refer to OnTouchListener
button.setOnTouchListener(this);
实际上,它们都是指Example
,其中 是Activity
,OnClickListener
和OnTouchListener
。
答案 1 :(得分:1)
扩展类,实现接口是面向对象编程的主要部分。假设您有一个名为Car的类,以及几个接口,Accelerate,Brake,Steer。当Car实现这些接口时,意味着它可以执行这些操作。然后你可以说myCar.brake();或myCar.steer(“left”);或myCar.accelerate(10);.您可以将myCar更改为thisCar,或者只是将其更改为,因为所有这些汽车都有相同的行为。
Oracle拥有它的真正大指数,而且由于Android基于Java,因此它是相当不错的参考点。 http://docs.oracle.com/javase/tutorial/reallybigindex.html