首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java实例方法不同的调用方式

Java实例方法不同的调用方式
EN

Stack Overflow用户
提问于 2018-07-25 01:46:11
回答 1查看 80关注 0票数 4
代码语言:javascript
复制
class SomeClass {
   public void someMethod(){}

   public void otherMethod(){
      //Calling someMethod()
   }
}

当你调用一个实例方法时有什么不同:

代码语言:javascript
复制
 --> someMethod(); OR this.someMethod();

vs

--> SomeClass.this.someMethod();

EN

回答 1

Stack Overflow用户

发布于 2018-07-25 01:53:51

与做以下事情没有区别:

代码语言:javascript
复制
//...
public void otherMethod(){
  someMethod();
}
//...

去做

代码语言:javascript
复制
//...
public void otherMethod(){
  this.someMethod(); // `this` in this case refers to the class instance 
}
//...

现在如果你想

代码语言:javascript
复制
class SomeClass {
   public static void someMethod(){}

   public void otherMethod(){
      //Calling someMethod()
   }
}

你可以这样做:

代码语言:javascript
复制
//...
public void otherMethod(){
  SomeClass.someMethod(); // as the method is static you don't need to call it from an instance using `this` or omitting the class 
}
//...

最后,这种语法SomeClass.this.someMethod();并不是在所有场景中都是正确的。下面是一个可以使用(正确)的示例:

代码语言:javascript
复制
class SomeClass {
   public void someMethod(){}

   public void otherMethod(){
      //Calling someMethod()
   }

    class OtherClass {

        public OtherClass() {
            // OtherClass#someMethod hides SomeClass#someMethod so in order to call it it must be done like this
            SomeClass.this.someMethod();
        }

        public void someMethod(){}
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51504732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档