Objective-C语言特性深度解析
1. 面向对象编程与Objective-C的独特之处
在一些编程语言中,一切皆为对象,像数字字面量、字符字面量等。但在Objective - C(以及C++、C#和Java等)里,存在非对象的字面量类型。例如在Smalltalk中,你可以输入 3 timesDo: [ drawSomething ] ,因为输入的 “3” 实际上是一个对象。而在Objective - C中并非如此,不过借助新的字面量语法,类似的行为也逐渐成为可能,比如 [@3 description] 会返回 @"3" 。
“面向对象编程” 这一术语最早出现在软件行业意识到过程式编程无法满足所有软件项目需求之时。那时,任何支持对象概念的语言都被视为 “面向对象”。如今,除了新的函数式语言,大多数新语言被称为面向对象,仅仅是因为它们拥有基于类、子类化以及接口或协议概念的内置可扩展对象系统。
Objective - C和Smalltalk还有一个显著特征:消息传递。消息和消息传递的概念在Objective - C和Smalltalk中根深蒂固,将它们视为面向消息的编程语言是很有意义的。下面详细看看消息传递机制。
2. 消息发送机制
从开发者的角度看,消息通过方括号语法发送给接收者。实际上,编译器会将Objective - C的方括号语法转换为C函数调用。例如下面两行代码是等价的,但开发者通常无需自己调用 objc_msgSend :
[re
超级会员免费看
订阅专栏 解锁全文
62

被折叠的 条评论
为什么被折叠?



