1

Java 调用方法的语法如下:

object.methodName(...)

在 Objective-C 中,向对象发送消息的语法如下:

[object methodName:...]

更好的是,假设您有一个 Java 接口(比如 Aj)和一个实现该接口的对象(比如 Bj)。假设在 Objective-C 中也有一个协议(比如 Ac)和一个实现该协议的类(比如 Bc)。

爪哇:

Aj object = new Bj();
Aj.method();

目标-C:

Ac* object = [[Bc alloc] init];
[Ac method];

显然它是不同的。但我认为:在这两种情况下,方法与正确对象的绑定都是动态完成的,然后我认为 Java 也使用消息并在运行时选择正确的方法。这是对的吗?

我可以肯定 Java 也使用“消息”机制来调用对象的方法吗?

4

2 回答 2

1

一个重要的区别是 Objective-C 允许你将消息传递给nil. 如果您尝试null在 Java 中调用方法,它将无法编译。

于 2013-04-17T21:09:16.413 回答
1

根据这篇文章,看起来 Java VM 具有与 Obj-C 类似的“消息”机制:http: //www.informit.com/articles/article.aspx? p=1571983

只是轻而易举地通过它,可能是错误的。

于 2013-04-17T21:05:06.880 回答