有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中安卓调用实例方法

遵循本教程:

http://developer.安卓.com/training/notepad/notepad-ex2.html

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

registerForContextMenu(getListView());

这是一种公共活动方式。现在,我是一个Java新手-我想如果你想调用一个超类的实例方法,你需要在它前面加上this。例如

this.registerForContextMenu(getListView());

这只是一种时尚吗?两者之间有什么区别吗

this.registerForContextMenu 

而且很简单

registerForContextMenu

共 (4) 个答案

  1. # 1 楼答案

    不,没有区别

    您不必使用this.,但通常都是为了使代码更清晰

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

    this.registerForContextMenu() 
    

    static这样的方法:

    ClassName.staticRegisterForContextMenu()
    
  2. # 2 楼答案

    您不必使用this。如果您在this范围内调用了方法,则假定您调用了该方法。当this可能有帮助时,一个特定的例子是:

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

    在这种情况下,您将得到错误

  3. # 3 楼答案

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

  4. # 4 楼答案

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

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

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

    至于

    this.registerForContextMenu() 
    

    registerForContextMenu()
    

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