public class CommandForm extends Form implements CommandListener {
Display d;
public CommandForm(String msg) {
super(msg);
this.addCommand(exit);
}
private void showMessage(String title, String text) {
Alert a = new Alert(title, text, null, AlertType.INFO);
d.setCurrent(a, this);
}
public void prepare_view(Display d){
this.setCommandListener(this);
this.d = d;
}
public void show_view(){
d.setCurrent(this);
}
}
我不确切知道'this'关键字在此示例中的含义。我的讲师说这是当前的对象,当我进一步询问时,他说这是CommandForm。那是对的吗?当你将'this'传入括号时,例如setCommandListener(this)你实际上是在传递CommandForm吗?我知道如何使用'this'的唯一方法就是这样,this.d = d。所以这对我来说有点新鲜。
答案 0 :(得分:2)
你的讲师确实是对的。它是当前对象,this
只是一种引用当前范围内对象的方法。
您可以使用关键字将引用传递给其他对象,例如object.doSomethingWith(this)
,和/或解决成员和变量之间的歧义(例如this.x = x
- 这里有两个不同的x
。
答案 1 :(得分:2)
他是对的。如果您调用setCommandListener(this)
,则将对当前对象的引用传递给方法。当您执行this.d = d
时,您将变量d
设置为类的一部分(即this
)到输入值(在括号中)。
答案 2 :(得分:1)
是的,this
关键字是对CommandForm
类的特定实例的引用。