Objective-C基础教程2(继承和复合)
来源:互联网 发布:中国网络说唱歌手陈浩 编辑:程序博客网 时间:2024/04/27 22:18
继承是is a XX,复合是 has a XX,在复合中,对象可以引用其他对象。
1,继承语法
下面是用于声明新类的语法:
@interface Circle : NSObject
冒号后的标识符是需要继承的类。在Objective-C中,可以从非类中继承对象(非类是?TODO),但如果使用Cocoa,会希望从NSObject继承对象,因为NSObject提供了大量有用的特性,包括内存管理。和java的Object类很像,另外还有一个特点是相同的,只能继承一个。
一般子类会通过重写(override)继承方法。如Circle具有自己的draw方法,因此,我们说它重写了draw方法。
2,继承的工作机制
通用的原则,如果无法在对象类中找到相应的方法或者属性,就在该对象的超类中进行查找。
调用父类的方法,[super xxxx];
3,自定义NSLog()
通过NSLog()可以使用%@格式说明符来输出对象。NSLog()处理%@说明符时,它会询问参数列表中相应的对象以得到这个对象的描述。从技术上讲,就是NSLog()给这个对象发送描述信息,然后对象的description方法生成一个NSString并返回。之后NSLog()在其输出中包含这个字符串。我觉得应该是java中的toString()方法。
@implemention Engine- (NSString *) description{return (@"I am an engine");}NSLog(@"%@", engine);
4,getter和setter
@interface Car : NSObject{Engine *engine;}- (Engine *) engine;//get方法- (void) setEngine: (Engine *) newEngine;//set方法@end//Car存取方法,Cocoa有自己的惯例。
setter方法根据它所更改的属性的名称来命名,并加上前缀“set”。
getter方法则仅仅根据其返回的属性的名称命名。
get这个词在Cocoa中有着特殊的含义。如果get出现在Cocoa的方法名称中,就意味着这个方法会通过你当做参数传入的指针来返回数值。例如,NSData(Cocoa中的类,创建可存储任意字节序列的对象)中有一个getBytes:方法,它的参数就是用来存储字节的内存缓存区的地址。
- Objective-C基础教程2(继承和复合)
- Objective-C基础教程2(继承和复合)
- Objective-C中的继承与复合技术
- Objective-C的继承与复合
- 【Objective-C编程】浅析Objective-C的继承与复合
- 《Objective-C基础教程》第四章 继承
- 【《Objective-C基础教程 》笔记ch05】(六)OC中的复合机制Composition
- 《Objective-C基础教程》第5章 复合
- 《Objective-C基础教程》读书笔记(2)
- OC基础教程3-继承+复合
- Objective-C基础教程读书笔记(2)
- objective-c基础教程(笔记)
- [转载]Objective-C中的继承与复合技术
- 黑马程序员:Objective-C中的继承与复合
- 【《Objective-C基础教程 》笔记ch04】(五)OC中的继承inheritance机制
- objective-c 复合
- Objective-C 2.0 笔记 (3) Objective-C 物件导向程式设计,类目、协定、继承及复合
- objective-c和多继承
- Builder模式
- 长春-秋 (外链,照片,19张)
- 你所不知的private继承
- Linux下Gcc生成和使用静态库和动态库详解(转)
- JSON与JAVA的数据转换
- Objective-C基础教程2(继承和复合)
- 生产者消费者
- Centos 5 升级 python 2.4 -> 2.7
- 五轴数控铣削后处理技术&CLSF刀位文件格式说明
- 通向架构师的道路(第十八天)万能框架Spring(一)
- ListView中嵌入HTML格式文本
- Dojo 1.8:向完美架构继续前行
- HDU 1075 What Are You Talking About(字典树学习题)
- 鸟哥的Linux私房菜 读书笔记一