在Java中调用实例方法

时间:2012-08-24 19:08:50

标签: java android

遵循本教程:

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

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

registerForContextMenu(getListView());

这是Activity的公共方法。现在,我在这里是一个Java新手 - 我想如果你想调用一个超类的实例方法,你需要用这个作为前缀。例如。

this.registerForContextMenu(getListView());

这只是一种风格吗?

之间有什么区别吗?
this.registerForContextMenu 

简单地

registerForContextMenu

4 个答案:

答案 0 :(得分:2)

不,没有区别。

您不必使用this.,但无论如何通常都会使代码更清晰。

首先,如果您使用调用实例方法的约定,则可以很容易地判断方法是否为static

this.registerForContextMenu() 
像这样的

static方法:

ClassName.staticRegisterForContextMenu()

答案 1 :(得分:1)

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

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

在这种情况下,没有this你会得到错误。

答案 2 :(得分:1)

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

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

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

至于

this.registerForContextMenu() 

registerForContextMenu()
没有这样的差异。你可以使用它们中的任何一个。

答案 3 :(得分:0)

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