在面向对象编程中,是方法调用的对象部分



例如,假设我有一个定义如下的对象:

public class Example {
    public void doSomething() {
        // does something
    }
}

如果我想调用doSomething,我需要一个Example:的实例

Example foo = new Example();
foo.doSomething();  // doSomething is executed

我的问题是,foo.doSomething();行的哪一部分被正式认为是方法调用

它只是doSomething()的一部分,还是包括对象(foo.doSomething())的整个语句?

在Java中,整个target.method()被认为是方法调用的一部分:

http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#20448

这意味着,如果你有这样的代码:

foo.bar().baz()

那么整个表达式就是baz()的方法调用,而该方法调用的目标本身就是另一个方法调用。

doSomething是Example类的成员
foo是Example类的一个实例。

我不知道是否是控制OOP术语的管理机构,但尽管我担心OOP中的方法不能独立于类。您有两种选择,一种是调用实例方法,另一种是类(静态)方法。以太方式,您需要给出调用方法的实体(类或对象)的名称和方法名称。所以foo.doSomething()就是方法调用。

简而言之,就是doSomething()。对于实例方法(例如doSomething()方法),我们认为调用了对象上的方法。每个实例方法都有一个额外的参数,称为this,它表示您对其调用该方法的对象,并且语言会自动为您将其传递给该方法。

doSomething()是方法,foo是您调用该方法的实例。foo将作为this参数隐式传递。

doSomething()是方法调用,foo是在/从中调用方法的Example实例。

点运算符取消引用对象foo,然后访问foo的基本对象。本例中的对象是Example。然后,它访问Example的方法doSomething(),在这种情况下,会执行一些操作。在这个场景中,foo是对从类Example实例化的对象的引用。点运算符取消引用foo,doSomething()访问取消引用的基类以调用该方法。

相关内容

  • 没有找到相关文章