当前位置: 首页 > news >正文

漳州正规网站建设费用宁波seo服务引流推广

漳州正规网站建设费用,宁波seo服务引流推广,长沙网页设计工资高吗,深圳燃气公司有哪些Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smallta…

Objective-C是非常实用的语言。它是一个用C写成很小的运行库,令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。因此,Objective-C它完全兼容标准C语言(C++对C语言的兼容仅在于大部分语法上,而在ABI(Application Binary Interface)上,还需要使用extern "C"这种显式声明来与C函数进行兼容),而在此基础上增加了面向对象编程语言的特性以及Smalltalk消息机制。 [1] 

Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的死亡时间,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已加入这个功能(尤是GNUstep), Apple在其Mac OS X 10.3中仍未引入这个功能。

虽然Objective-C是C的超集,但它不是C的基本类型为第一级的对象。

异同

Objective-C同C++的异同:

和C++不同,Objective-C不支持运算符重载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。

Objective-C和C++的比较

单一继承:

和Java、Smalltalk一样,Objective-C不支持多重继承,而C++语言支持多重继承。

动态:

Objective-C是动态定型(dynamicaly typed),它的类库比C++容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。

C++ 跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。

在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objective-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr67那里就无法通过。

从很多方面来看,C++和Objective-C的差别,与其说是技术上的, 不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者称既然程序设计出色何必再要灵活性,而 Smalltalk学派则称为了灵活可以容忍运行时多出错。

优缺点

Apple在其Mac OS X 10.3中仍未引入垃圾回收这个功能。不过令人欣慰的是在Apple发布的Xcode4中已经支持自动释放(不等同于严格意义上的垃圾回收,因为两者机制不同)。在Xcode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加[NSObject release]。

另一个问题是Objective-C不包括命名空间机制(namespace mechanism),取而代之的是程序设计师必须在其类别名称加上前缀,时常引起冲突。在2004年,在Cocoa编程环境中,所有Mac OS X类和函数均有“NS”作为前缀,例如NSObject或NSButton,以表明它们属于Mac OS X核心(使用“NS”是由于这些类和函数在NeXT OpenStep开发时定下的)。

虽然Objective-C是C的超集,但它不视C的基本型为第一级的对象。

由于Objective-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化技术失效(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Objetive-C性能劣于类似的对象抽象语言(如C++)。不过Objective-C拥护者认为既然Objective-C运行时消耗较大,Objective-C本来就不应应用于C++或Java常见的底层抽象。

<interface 部分>  位于.h文件

@interface MyObject : NSObject {int memberVar1; // 实体变量id  memberVar2;
}+(return_type) class_method; // 类方法-(return_type) instance_method1; // 实例方法
-(return_type) instance_method2: (int) p1;
-(return_type) instance_method3: (int) p1 andPar: (int) p2;
@end

注:以上的+号表示类方法,不需要实例就可以调用,-号表示实例方法,必须要实例才能对其进行调用

<implementation 部分> 位于.m文件

@implementation MyObject () <protocol1,protocol2>{int memberVar3; //私有實體變數
}属性  
@property(copy) NSString *name;
@property(readonly) int age;方法
+(return_type) class_method {.... //method implementation
}
-(return_type) instance_method1 {....
}
-(return_type) instance_method2: (int) p1 {....
}
-(return_type) instance_method3: (int) p1 andPar: (int) p2 {....
}
@end

Interface区块可定义实体变量,Implementation区块也可以定义实体变量,两者的差别在于访问权限的不同,Interface区块内的实体变量默认权限为protected,宣告于implementation区块的实体变量则默认为private,故在Implementation区块定义私有成员更匹配面向对象之封装原则,因为如此类别之私有信息就不需曝露于公开interface(.h文件)中

注:以上的() <class1,class2,..>表示当前的类MyObject遵从协议protocol1和protocol2,在当前类MyObject需要重写protocol1,protocol2的方法

<协议Protocol部分>

@protocol Locking
- (void)lock;
- (void)unlock;
@end
​​​
http://www.yayakq.cn/news/207865/

相关文章:

  • 安能物流网站android开发app
  • 网站信息郑州抖音推广
  • wordpress 首页403seo内容优化是什么
  • 青岛做网站的信息技术公司网站群方案
  • 男生做男生网站在那看营销型网站建设深圳
  • 网站规划的一般步骤自建网站做网上超市可行吗
  • 网站比较分析创意设计素材
  • 做个网站需要多久重庆建站塔山双喜
  • 做app_需要先做网站吗华为开发者
  • 无证做音频网站违法吗阜阳手机网站制作
  • 河北建设工程招标投标协会网站随州网站推广哪家好
  • 个人站长做什么网站好免费网站流量统计工具
  • 空间设计师网站2019做什么类型网站
  • 网站建设的几个阶段网站模板组件
  • 江苏省城乡和建设厅网站企业历史展厅设计
  • 网站无法添加图片信阳网站建设哪个好
  • 专业长春网站建设哪家好电子商务网站有哪些?
  • 带做网站绿标微信公众号如何运营与推广
  • 建设部标准定额网站福建建设监理网站
  • 电商网站建设需求分析 实例题大庆做网站找谁
  • 王者荣耀网页设计报告网站移动端seo
  • 建站产品c2c模式类型有哪些
  • 有没有做微信的动态图网站网站优化常见的优化技术
  • 做装饰工程的在什么网站投标网站建设公众号小程序开发
  • 免费做网站公司免费设计logo标志
  • 如何服务器ip地址做网站淘宝关键词排名查询工具
  • 网站设计师主要做什么的wordpress 主题 mip
  • 做网站的域名和空间是什么意思湖南大钧工程建设有限公司网站
  • 重庆市建设工程施工安全管理总站变装app制作教程
  • 网站服务器配置参考指南收款后自动发货的网站是怎么做的