为何是Objective-C?
来源:互联网 发布:百度高级优化师 怎么考 编辑:程序博客网 时间:2024/05/01 13:49
Cocoa框架选择了Objective-C作为开发语言有许多方面的原因。首先,也是最主要的原因,它是一个面向对象 的语言。Cocoa框架中的很多功能只能通过面向对象的技术来呈现,本文档将对Cocoa框架的功能进行具体阐述并介绍怎样使用它们。其次,是标准C语言的一个超集,现存的C程序无需重新开发就能够使用Cocoa软件框架,并且您可以在Objective-C中使用C的所有特性。您可以选择什么时候采用面向对象的编程方式(例如定义一个新的类),什么时候使用传统的面向过程的编程方式(定义数据结构和函数而不是类)。
此外,Objective-C是一个简洁的语言,它的语法简单,没有歧义,并且易于学习。 因为易于混淆的术语以及抽象设计的重要性,对于初学者来说,面向对象编程的学习曲线比较陡峭。象Objective-C这种结构良好的语言使得成为一个熟练的面向对象程序员更为容易。 介绍Objetive-C的章节也如同其语言本身一样简洁。
和其他的基于标准C语言的面向对象语言相比,Objective-C对动态机制支持得更为彻底。编译器为运行环境保留了很多对象本身的数据信息,因此某些在编译时需要做出的选择就可以推迟到运行时来决定。这种特性使得基于Objective-C的程序非常灵活和强大。例如,Objective-C的动态机制提供了两个一般面向对象语言很难提供的优点:
Objective-C支持开放式的动态绑定,从而有助于交互式用户接口架构的简单化。例如,在Objective-C中发送消息既无需考虑消息接收者的类也不用考虑方法的名字,从而可以允许用户在运行时再做出决定,也给了开发者在设计时极大的自由(术语“动态绑定” ,“消息“,“消息接收者”, “类”将在随后的章节中进行介绍)。
Objective-C的动态机制成就了各种复杂的开发工具。运行环境提供了访问运行中程序数据的接口,所以使得开发工具监控Objective-C程序成为可能。
注意:作为编程语言来说,Objective-C有很悠久的历史。它在二十世纪八十年代早期被发明于Stepstone公司,作者是Brad Cox和Tom Love。八十年代后期,NeXT计算机有限责任公司获得了使用Objective-C来开发NeXTStep框架的授权,也就是后来的Cocoa。NeXT在多方面对Objective-C进行了扩展,例如协议部分。
此外,Objective-C是一个简洁的语言,它的语法简单,没有歧义,并且易于学习。 因为易于混淆的术语以及抽象设计的重要性,对于初学者来说,面向对象编程的学习曲线比较陡峭。象Objective-C这种结构良好的语言使得成为一个熟练的面向对象程序员更为容易。 介绍Objetive-C的章节也如同其语言本身一样简洁。
和其他的基于标准C语言的面向对象语言相比,Objective-C对动态机制支持得更为彻底。编译器为运行环境保留了很多对象本身的数据信息,因此某些在编译时需要做出的选择就可以推迟到运行时来决定。这种特性使得基于Objective-C的程序非常灵活和强大。例如,Objective-C的动态机制提供了两个一般面向对象语言很难提供的优点:
Objective-C支持开放式的动态绑定,从而有助于交互式用户接口架构的简单化。例如,在Objective-C中发送消息既无需考虑消息接收者的类也不用考虑方法的名字,从而可以允许用户在运行时再做出决定,也给了开发者在设计时极大的自由(术语“动态绑定” ,“消息“,“消息接收者”, “类”将在随后的章节中进行介绍)。
Objective-C的动态机制成就了各种复杂的开发工具。运行环境提供了访问运行中程序数据的接口,所以使得开发工具监控Objective-C程序成为可能。
注意:作为编程语言来说,Objective-C有很悠久的历史。它在二十世纪八十年代早期被发明于Stepstone公司,作者是Brad Cox和Tom Love。八十年代后期,NeXT计算机有限责任公司获得了使用Objective-C来开发NeXTStep框架的授权,也就是后来的Cocoa。NeXT在多方面对Objective-C进行了扩展,例如协议部分。
- 为何是Objective-C?
- 有了Swift,iOS开发者为何仍需掌握Objective-C?
- Objective-C 是如何慢慢走红的?
- objective-c 字符串是怎么连接的
- Objective-C是动态语言吗?为什么?
- C/C++函数参数为何是从右到左?
- 纯C代码是用哪个格式?Objective-C ?
- Objective-C:为何使用ivar成员变量?Why would you use an ivar?[zz]
- 封闭开发是为何?
- 封闭开发是为何?
- 封闭开发是为何?
- 封闭开发是为何?
- 封闭开发是为何?
- 封闭开发是为何?
- 跳槽为何是第一生产力?
- 封闭开发是为何?
- 跳槽为何是第一生产力?
- 封闭开发是为何? .
- 设置samba共享文件写入权限(备忘)
- 算法导论学习笔记(5)——二叉查找树
- retain和copy的区别
- scanf()函数使用详解
- 基于Objective-C的面向对象编程
- 为何是Objective-C?
- 关于参加ACM的几个误区
- 面向对象编程技术
- 黑马程序员_张孝祥银行调度系统
- 字符串的序号[康托展开]
- 将泛型定义在类上和定义在接口上的区别!!!(包括静态)
- TQ2440(ARM)和SIM300(GPRS模块)串口通信
- 对象模型
- 学习的境界