Atitit. Object-c语言 的新的特性 attilax总结
1.1. Object-C语言由 Brad J.Cox于20世纪80年代早期设计,1
1.2. Object-C新增的数据结构:1
1.3. 类扩展1
1.4. 动态特性 Object-C中一个强大的特性就是它的动态因素。2
1.5. 多重继承的偏方 一个类可以实现若干的协议,从这个角度实现了类的多重继承。2
1.6. 实体方法 静态函数 减号“-” 加号“+” 声明2
1.7. 调用方法:Objective-C里面的方法 使用消息(Message)来调用方法。3
以SmallTalk为基础,建立在C语言之上。1988年,NeXT获得Object-C的授权,开发出了Object-C的语言库和一个名为NEXTSTEP的开发环境。1994年,NeXT公司与Sun 公司联合发布了一个针对NEXTSTEP系统的标准规范,并命名为OPENSTEP。OPENSTEP在自由软件基金会的实现名称为GNUStep。有Linux下的版本。1996年,苹果公司收购了NeXT公司,并将NEXTSTEP/OPENSTEP定为苹果操作系统下一个主要发行版本的基础。并发布了一个相关开发环境,名为Cocoa,内置了对Obejct C的支持。2007年,苹果公司发布了Object-C 2.0,并在iPhone上使用Object-C进行开发。
因此,能够编译Object-C语言可以使用GNUStep和Apple公司提供的SDK,而如果要使用到Cocoa的话,只能在Apple公司的SDK上。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:[email protected]
转载请注明来源: http://blog.csdn.net/attilax
Object-C了一个可以存储任何类型的数据结构 ---- id数据类型。它是一般对象类型,能够存储任何类型的方法
Object-C也提供了另外一种在原有类上进行扩展的机制,叫做类扩展。使用这种机制可以在不修改原有类代码的基础上进行类的扩展。经过扩展后的类拥有新的属性或者方法
每个对象都保存着它所拥有的一些类属性,包括属于哪个类, 哪个父类,是否响应某个函数等等,因此 Object-C也支持一些处理动态类型的方法。
也因为Object-C 的动态特性,导致了一些常规的编译时性能优化方法都不用能于Object-C,这也是导致了 Object-C的运行性能劣于类似的对象抽象语言(如C++) ,因此一些底层的操作应使用C++或类似的语言进行封装,由Object-C负责高层逻辑的封装。
由于Object-C不支持多重继承,有一些逻辑类的封装可能无法方便地使用,因此Object-C中提供了协议的机制,一个类可以实现若干的协议,从这个角度实现了类的多重继承。
类中方法的定义:
减号“-”声明的方法为:实体方法(instance method)
加号“+” 声明的方法:类方法(class method);相当于java中的静态函数
@interface Shape : NSObject
{
@private
int var;
@public
Int color;
}
-(void) setColor : (int ) color;
+(void)showMe;
@end
所谓的消息就是一个类或者对象可以执行的动作。消息的格式如下:
[对象或者类名字 方法名字:参数序列];
其中“对象或者类名字”被称作消息的接收器(Receiver),),“方法名字”被称作选择器(Selector)或者关键字(Keyword)。方法名字:参数序列”被称为一个消息(Message),Objective-C在编译的过程当中,编译器是会去检查方法是否有效的,如果无效会给你一个警告。但是编译器并不会阻止你执行,因为只有在执行的时候才会触发消息,编译器是无法预测到执行的时候会发生什么奇妙的事情的
Object-c语言特性 学步园.htm
快速了解Object-C语言(1)_chase_新浪博客.htm