A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孔思哲 中级黑马   /  2014-11-26 14:37  /  1515 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Objective-C 是苹果 Mac OS X 上开发的首选语言,主要是因为 Mac OS X 技术源自 NextStep 的 OpenStep操作系统。因为 OPENSTEP 的软件架构(framework)都是用 Objective-C写成,所以 Mac OS X 上的开发语言自然也就是 Objective-C 了。

80年代初,Brad Cox在第一个纯面向对象语言Smalltalk的基础上写成。后来他创立了StepStone公司从事Objective-C的推广。
1998年,Steve Jobs的Nextstep采用Objective-C作为开发语言。
1992年,GNU gcc编译器中包含了对Objective-C的支持(gnu-objc runtime),Dennis Glating写了第一个run-time。Richard Stallman第二个,最近的是Kresten Krab Thorup在丹麦读大学时写的,他后来到NextStep工作。

目前,Objective-C是Max OS X的首要开发语言,也是GNUstep在Linux和其他平台上的开发语言。

Objective-C是ANSI C的超集,扩展了C语言使它具备面向对象设计的能力,如类、消息和继承。Objective-C程序中可以利用现有的C语言代码,使其利用现有的软件架构。这也是为什么Objective-C过去多年间能够成为一种流行的用户界面开发语言而且至今没有消亡,因为一方面用它可以实现底层系统编程,另一方面可以利用动态构架进行开发。

Objective-C和C++的比较
1. 单一继承:
Objective-C不支持多重继承,(同Java和Smalltalk),而C++语言支持多重继承。
2.动态:
Objective-C是动态定型(dynamicaly typed)所以它的类库比C++要容易操作。Objective-C在运行时可以允许根据字符串名字来访问方法和类,还可以动态链接和添加类。
3.不同思维方式
C++跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objective-C属于Smalltalk学派。
在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。
Simula 67学派更安全,因为大部分错误可以在编译时查出。而Smalltalk学派更灵活,比如一些Smalltalk看来无误的程序拿到Simula 67那里就无法通过。
从很多方面来看,C++和Objective-C的差别,与其说是技术上的,不如说是思维方式上的。你是否想更安全而舍弃灵活性?
Simula 67学派的支持者声称既然程序设计出色何必再要灵活性,而Smalltalk学派则辩称为了灵活性可以容忍运行时多出错。

9 个回复

倒序浏览
附加句,oc是有乔布斯主持开发的,整体性能相比较而言要好点!嘿嘿!
回复 使用道具 举报 1 0
mahei521 发表于 2014-11-26 14:40
附加句,oc是有乔布斯主持开发的,整体性能相比较而言要好点!嘿嘿!

:handshake
回复 使用道具 举报
很多人都说swift会替代oc,但感觉现在还是oc占的比重大一点
回复 使用道具 举报
楚燮哥哥 发表于 2014-11-26 16:46
很多人都说swift会替代oc,但感觉现在还是oc占的比重大一点

还是c比较好:lol
回复 使用道具 举报
OC的出现,回避了C语言中复杂的指针问题,面向对象的思想使解决问题的思路变得简单清晰
回复 使用道具 举报
vittle 中级黑马 2014-11-26 22:17:53
7#
楼主推荐本oc教材啊
回复 使用道具 举报
继续继续
回复 使用道具 举报

swift是先转成oc再转成c的,感觉上会比oc慢点
回复 使用道具 举报
kale 中级黑马 2014-11-26 23:58:01
10#
了解了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马