1

按照本教程:

http://developer.android.com/training/notepad/notepad-ex2.html

在第 2 步中,调用此方法:

registerForContextMenu(getListView());

这是 Activity 的公共方法。现在,我在这里有点像 Java 新手——我想如果你想调用超类的实例方法,你需要在它前面加上this。例如

this.registerForContextMenu(getListView());

这只是一种风格吗?有没有区别

this.registerForContextMenu 

简单地说

registerForContextMenu
4

4 回答 4

2

不,没有区别。

您不必使用this.,但通常会这样做以使代码更清晰。

一方面,static如果您使用调用实例方法的约定,可以很容易地判断一个方法是否存在,如下所示:

this.registerForContextMenu() 

static这样的方法:

ClassName.staticRegisterForContextMenu()
于 2012-08-24T19:11:37.757 回答
1

你不必使用this. 如果您省略它,则假定您在this范围内调用了方法。一个可能有帮助的特定示例this可能是:

Boolean someVar;
public function setMe( Boolean someVar ) {
  this.someVar = someVar;
}

在这种情况下,w/othis你会得到错误。

于 2012-08-24T19:13:30.170 回答
1

要调用超类的方法,您需要 superclss 的对象或关键字super。例如。

superObject.superclassMethod();
    super.superclassMethod();

是当前对象的引用。this可用于调用使用它的类的方法。this永远不能用于调用超类方法。

至于

this.registerForContextMenu() 

registerForContextMenu()

没有这样的区别。你可以使用它们中的任何一个。

于 2012-08-24T19:42:48.490 回答
0

这两种方法对于在类的当前 (this) 实例上调用方法都是正确的。非私有方法继承自超类,因此您可以使用相同的语法来调用此类方法。

于 2012-08-24T19:11:57.857 回答