OC语言优点:

  • 1.Category是非常实用的扩展机制,可以很方便的为一个已有的类添加属性或者方法,而不需要笨拙的去继承。
  • 2.运行时多态的概念,可以让一个类的对象动态的以其他类行为去执行(OC中多了很多运行时态的机制,其中id的特殊用途,可以通过id类型的变量,调用不同类的同名函数,即使这些类没有任何关系)。
  • 3.ARC不用多讲了吧
  • 4.OC中类没有所谓的构造函数和析构函数,所以如果一个类中有其他类的数据(动态申请的),那么释放内存就不能依赖析构函数,但可以采用重写-(id) free来实现类中所有数据释放。
  • 5.OC++中成员变量也有三种访问权限,@public,@protected,@private。但默认的是@protected,而C++中默认是private。
  • 6.OC中成员函数只有两种,一种是实例函数,一种是类函数。实例函数就是C++中的Public函数,类函数就是public中的staTIc函数。
  • 7.OC中成员函数如果要接受多个参数,则需要每个参数前加冒号(虽然教科书上说参数后加冒号,但就我看来说成参数前加更能让C++Programmer理解)。例如-( int ) Set : ( int ) A : ( int ) B ;每个形参前还可以加一个参数名,并成为函数名的一部分。例如-( int ) Set : ( int ) A And : ( int ) B;在使用时[ classTest Set : 10 And : 12 ]; 起初看起来确实不习惯。。。
  • 8.OC中还多了一个id类型,通过测试,id就是指针。
  • 9.OC不是一个过度复杂的 C 衍生语言。
  • 10.OC可以给已类添加新的函数。@interface classExist( NewMethodGroup )-@end,@implementaTIon classExist( NewMethodGroup )-@end。
  • 11.OC可以将让某类A,代替某类B。通过poseAs关键字。例如:[FracTIonB poseAs: [FracTIon class]];此后使用Fraction类时,就转换成使用FractionB了
  • 12.OC还有protocol概念。protocol实际是一组函数,支持改协议的类都应重写这些函数。通过@protocol-@end来声明protocol。类中通过《protocol1,protocol2,。。。》来表示支持某个协议。如@interface A : Object 《 NSCopying, NSTransform 》-@end表明类A继承与Object类,并支持两个协议(NSCopying, NSTransform )。
  • 13.OC最后总结,其类实现以c为基础。@interface classTest - @end是相当于一组宏,帮你将类的所有成员变量声明组织为一个结构体,成员函数实际就是普通函数,是在原来成员函数基础上,修改函数名称,添加结构体指针到第一个参数。id类型实际也就是指针。难怪OC的类看起来不像C的一般语法,原因就是其源自C的一般语法,采用新的类脚本的方式,实现的类功能。
  • 14.由于都是C衍生出的面向对象的语言 所以可以和C++混合编码。(百度地图API 就用到了)

OC语言的缺点:

  • 1.不支持多重继承 只有多级继承。
  • 2.使用动态运行时类型,所有的方法都是函数调用,所以很多编译时优化方法都用不到。(如内联函数等),性能低劣。
  • 3.不支持运算符重载(“命名空间”,也称“名称空间” 。VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。)
  • 4.程序执行效率:汇编》C》OC

oc语言的优缺点有哪些相关推荐

  1. oc语言和c语言,C语言及OC语言初期学习心得

    2015-7-22,周三 经过一个星期C语言的学习,对基础知识语法已经有了一定的了解和认识.同时通过这三天对OC语言的学习,更加了解编程语言都是相融相通的.虽然 OC语言的语法和之前接触的C,JAVA ...

  2. python的优点和缺点-Python语言的优缺点,你知道吗?

    Python被称为是机器学习最优秀的语言,没有之一.很多人不禁会问,Python究竟有什么优点呢?能够在短短时间内上升为编程界最受欢迎的语言.今天,千锋武汉Python培训小编就详细讲解一下Pytho ...

  3. OC语言Block和协议

    OC语言Block和协议 分类: OC基础2014-10-07 09:24 162人阅读 评论(0) 收藏 举报 OC Block OC协议 OC语言BLOCK和协议 一.BOLCK (一)简介  B ...

  4. OC语言Block 续

    OC语言 Block 转载:http://blog.csdn.net/weidfyr/article/details/48138167 1.Block对象中的变量行为 结论: 在block代码块内部可 ...

  5. 使用OC语言批量修改文件名称

    使用OC语言批量修改文件名称 最近从网上下载很多电视剧,但是名字都不尽如人意,所以要进行批量修改,有强迫症的,需要把文件名弄的完美. 原有的文件名,修改后的是这样的 我们创建一个非常简单的项目即可,不 ...

  6. python弱类型好处_JavaScript弱类型语言的优缺点有哪些

    弱类型语言也称为弱类型定义语言.与强类型定义相反.像vb,php等就属于弱类型语言· 例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 12 ...

  7. Objective-c:OC语言简介、类与对象

    Objective-c 简介 1.1980年代初,Brad Cox发明了Objective-C: 2.1985年乔布斯成立了NeXT公司,创建了NextSTEP,使用Objective-C开发的用户界 ...

  8. OC语言——基本语法和思想

    今天学习了OC语言基础语法 1.oc语言完全兼容C语言,后缀为.m类型.被广泛应运与开发苹果mac os x平台和ios开发平台 2.oc语言关键字基本上以@开头,oc字符串也是以@开头. 3.基本类 ...

  9. OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  10. oc中写c语言的方法,OC语言description步骤和sel

    OC语言description方法和sel OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) ( ...

最新文章

  1. Scala:Functions and Closures
  2. v7000更换电池步骤_v7000 gen1 电池更换问题
  3. 重置outlook 2010
  4. 在此iphone上尚未受信任_苹果中国官网开启限购!每款iphone每人限购两部
  5. Day03-卷积神经网络原理与使用
  6. 1.1 Java注解(Annotation)简介
  7. 【AC自动机】AC自动机(二次加强版)(luogu 5357)
  8. c# mysql app.config_60. C# -- 读取 appconfig文件配置数据库连接的方法
  9. Mysql数据库索引原理及算法原理
  10. 阅文启动“2022全球作家孵化项目” 加速网络文学出海
  11. 前端特效demo | 值得收藏的6个 HTML5 Canvas 实用案例 1
  12. Delphi 集合和字符串互转
  13. 基础集合论 第一章 2 集合
  14. iOS之摇一摇功能实现
  15. 【深度长文】中国电子商务简史:1999-2019
  16. tplink怎么进去_手机怎么进入tplink路由器设置界面?
  17. SEO:让网站收录更好的十个方法 网站一直不被收录怎么办
  18. C++语言的基本符号与词汇
  19. 手游上线前的五种测试的基础方法
  20. DDD(Domain-Driven Design 领域驱动设计) 与产品设计

热门文章

  1. 利用anaconda 下载python所依赖的文件包
  2. XX公司信息化建设草案
  3. Java自学教程汇总
  4. jdk17稳定版来了,jdk8还能香多久?
  5. 商务与经济统计 第三章案例
  6. 植物大战僵尸c语言编程,c语言----实战植物大战僵尸
  7. JAVA实现Html转Pdf(wkhtmltopdf)
  8. java的xsd文件_java – 如何通过相对路径引用本地XSD文件
  9. python定时任务管理系统_python定时任务最强框架APScheduler详细教程
  10. C++ 性能优化篇三《测量性能》