优点:
1) Cateogies
2) Posing
3) 动态识别
4) 指标计算
5)弹性讯息传递
6) 不是一个过度复杂的 C 衍生语言
7) Objective-C 与 C++ 可混合编程
Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容
动态类型 :
可以让你的代码在运行时判断对象的类型。id 数据类型可以在运行时用任何数据类型来替换。所以,你可以让运行时因素来决定代码中用到的对象是什么类型。动态类型让你的应用更加灵活,这是静态类型做不到的,不过这会让数据的严格统一性降低。【注意:静态类性中的类都是固定种类的(比如 NSString *var),它有自身的优势,实际上用处比动态类型更广泛。打个比方,使用静态类型,编译器就可以完全分析你的代码。这让代码性能和可预知性更高。在其他面向对象编程语言中,动态类型有时被成为弱类型,静态类型被成为强类型。】
动态绑定 :
让你的代码在运行时判断需要调用什么方法,而不是编译时。就像动态类型把对象的类型放到运行时再去判断一样,动态绑定把选择调用哪种方法的任务放到了运行时去完成。和其他面向对象语言一样,方法调用和代码并没有在编译时就联结在一起,只有在消息发出时,它们才真正联结。 动态类型和动态绑定的存在使得选择哪个接收者以及调用哪个方法都可以在运行时来决定。用一个画图程序来打比方,它能够定义从父类继承而来的图形类应该怎样归类;你可以直接在某个对象上调用 draw 方法,无需知晓该对象的类以及它绘制自己的具体途径。
动态载入
可以让你的程序在运行时添加代码模块以及其他资源。有了动态载入特性,应用可以根据需要加载一系列可执行代码以及资源,而不是在启动时就加载所有组件。这能够大大提高性能。可执行代码中可以含有和程序运行时整合的新类。
缺点:
1) 不支持命名空间 ,取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突
2) 不支持运算符重载
3) 不支持多重继承
4) 使用动态运行时类型,所有的方法都是函数调用,所以很多编译时优化方法都用不到。(如内联函数等),性能低劣。
相关推荐
- **定义**: Object-C是一种通用、面向对象的编程语言,基于C语言并扩展了许多面向对象的特性。 - **应用场景**: 主要用于开发iOS和macOS应用。 - **特点**: - 继承自C语言,具有C的所有特性。 - 引入了面向对象的...
学习object-c时,除了语言本身的基本语法和面向对象的概念外,还需要掌握它与C语言的兼容性,以及在xcode中的应用实践。 作者强调,在选择学习iOS的书籍时,要选择适合自己学习风格的教材。一本好的入门书籍应该...
- **定义**: Object-C是一种通用、面向对象的编程语言,基于C语言发展而来。它继承了C语言的所有特性,并在此基础上增加了面向对象的特性。 - **特点**: - 继承自C语言的所有特性。 - 支持面向对象编程(OOP)。 - ...
### Object-C 学习文档知识点总结 #### 开始学习Objective-C **下载教程:** - 所有的初学者指南原始代码可从`objc.tar.gz`下载。 - 许多示例来自Steve Kochan的《Objective-C 编程》一书。若需更深入的学习和示例...
**Objective-C**是一种面向对象的编程语言,它是对C语言的一种扩展。该语言最初由Brad Cox和Tom Love设计,并在1983年由Stepstone公司发布。Objective-C主要用于开发Mac OS X和iOS操作系统上的应用,同时也在GNUstep...
### Object-C(中文版) #### 开始吧 **Objective-C**是一种面向对象的编程语言,它是C语言的一种扩展。此语言被广泛应用于Mac OS X和GNUstep等遵循OpenStep标准的系统中。Objective-C能够在gcc支持的操作系统上进行...
C++语言是在C语言的基础上发展起来的,增加了面向对象编程(Object-Oriented Programming,简称OOP)的支持。C++最大的优势在于它能够进行面向对象编程,支持类、继承、多态等特性,同时也保持了C语言的高效率和对...
### Object-C 基础语法中文版 #### 开始吧 **下载这篇教学** 所有这篇初学者指南的原始码都可以由objc.tar.gz下载。这篇教学中的许多例子都是由Steve Kochan在他的书《Objective-C Programming》中撰写的。如果你...
#### 八、Object-C 的优缺点 - **优点**: - 强大的面向对象能力。 - 良好的跨平台兼容性。 - 丰富的类库支持。 - **缺点**: - 学习曲线较陡峭。 - 内存管理相对复杂。 #### 九、进阶学习资源 - **官方文档...
- **排序算法和排序器**:探讨各种排序算法的优缺点及适用场景。 - **图和图算法**:介绍图的基本概念及其在解决实际问题中的应用。 - **C#与面向对象编程**:深入探讨C#语言特性和面向对象设计原则。 综上所述...
由于其与C语言的兼容性,使得Objective-C成为了一种面向对象的编程语言。Objective-C的设计可以追溯到1980年代,其名称中的“Objective”指的是面向对象的概念。它在1988年由NeXT公司开发,1996年随着苹果公司收购...
- **优点与缺点**:讨论Object-C相对于其他编程语言的优势和劣势。 - **更多信息**:提供进一步学习的资源和参考资料。 ### 总结 本教程涵盖了从环境搭建到编写实际代码的全过程,适合初学者快速掌握Objective-C的...
Objective-C 是苹果公司开发的面向对象的编程语言,主要用于 macOS 和 iOS 平台的应用开发。在 Objective-C 中,遍历是处理数组、集合或者字典等数据结构时常见的操作。这里我们将详细介绍四种主要的遍历方法:for ...
- **定义**: Objective-C是一种通用、面向对象的编程语言,由C语言扩展而来。它继承了C语言的所有特性,并在此基础上增加了面向对象的功能和动态特性。 - **应用场景**: 主要用于开发苹果公司的操作系统上的应用程序...
Objective-C是一种面向对象的编程语言,它结合了C语言的特性,并引入了Smalltalk式的面向对象编程概念。Objective-C最初由General Electric的Pike International开发,后被苹果公司采纳并广泛应用于iOS和macOS的开发...
#### 八、优缺点分析 - **优点**: - 功能强大,支持动态类型和消息传递机制。 - 开发效率高,拥有丰富的API和强大的工具链支持。 - 社区活跃,有大量的资源可供学习。 - **缺点**: - 学习曲线较陡峭,尤其是...
8. **多继承类**: 讨论多继承的优缺点及其应用场景。 9. **运算符重载**: 解释如何自定义运算符的行为。 10. **模板**: 介绍模板的概念和使用技巧。 11. **异常处理与断言**: 学习如何有效地处理程序中的异常情况...