例如,假设我有一个像这样定义的对象:
public class Example {
public void doSomething() {
// does something
}
}
如果我想致电doSomething
,我需要一个Example
的实例:
Example foo = new Example();
foo.doSomething(); // doSomething is executed
我的问题是,行foo.doSomething();
的哪一部分被正式视为方法调用?
它只是doSomething()
部分还是包含对象(foo.doSomething()
)的整个语句?
答案 0 :(得分:4)
在Java中,整个target.method()
被认为是方法调用的一部分:
http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#20448
这意味着如果你有这样的代码:
foo.bar().baz()
...然后整个表达式是baz()
的方法调用,该方法调用的目标本身就是另一个方法调用。
答案 1 :(得分:1)
doSomething
是Example类的成员
foo
是Example类的一个实例。
答案 2 :(得分:0)
doSomething()是方法调用,foo是调用方法的示例实例。
点运算符取消引用对象foo,然后访问foo的基础对象。在这种情况下,该对象是示例。然后它访问Example的方法doSomething(),在这种情况下完成了一些事情。在这种情况下,foo是对从类Example实例化的对象的引用。点运算符取消引用foo,doSomething()访问取消引用的基类以调用该方法。
答案 3 :(得分:0)
我不知道它是否是一个控制OOP术语的管理机构,但是因为我关心OOP中的方法不能独立于类。您有两种选择,您可以调用实例方法或类(静态)方法。以太方式,您需要给出您调用方法的实体(类或对象)的名称和方法名称。所以foo.doSometghing()是方法调用。
答案 4 :(得分:0)
简而言之,就是doSomething()
。对于实例方法(例如您的doSomething()
方法),我们会说您在对象上调用方法。每个实例方法都有一个额外的参数,称为this
,它表示您调用方法的对象,语言会自动将它传递给方法。
doSomething()
是方法,foo
是您调用方法的实例。 foo
将隐式传递为this
参数。