黑马程序员技术交流社区
标题:
OC中建立类之间的关系之--复合
[打印本页]
作者:
HiGodl
时间:
2015-9-23 09:31
标题:
OC中建立类之间的关系之--复合
编程中的复合相当于音乐中作曲一样,将多个组件组合在一起,配合使用,从而得到完整的作品。
比如说一辆车需要有好多零件,每种零件作为一个对象,那么车就是这些零件的组合体,在程序中也就是车的成员变量是零件对象
下面来看一个小例子
首先定义一个轮胎的类
//因为只是举个栗子就简单写了
复制代码
接下来定义一个发动机Engine类
@interface Engine : NSObject
@end//Engine----定义Engine类
@implementation Engine
-(NSString *) description{
return (@"i am a engine Vroooooom!!!");
}
@end // Engine---定义Engine方法(<span style="line-height: 2.2em;">重写description方法</span><span style="line-height: 2.2em;">)</span>
复制代码
下面定义一个以Tire和Engine为成员变量的Car类
@interface Car : NSObject{
Tire * _tires[4]; //长度为4的轮胎对象数组
Engine * _engine; //发动机
}
复制代码
接下来是main方法
int main(int argc, const char * argv[]) {
Tire * tire =[[Tire alloc] init]; //实例化tire
NSLog(@"%@",tire); //打印Tire 打印---I am a tire , I last a while
Engine * engine = [[Engine alloc] init]; //实例化Engine
NSLog(@"%@",engine); //打印Engine 打印---i am a engine Vroooooom!!!
Car *car = [[Car alloc] init]; //实例化Car
[car setEngine:[[Engine alloc] init]]; //设置car的Engine
for(int i=0;i<4;i++){
[car setTire:[[Tire alloc] init] atIndex:i]; //设置car的四个轮胎
}
[car print]; //执行Car的打印方法
复制代码
感觉上并不难,其实就是多个小零件类组成一个成品类
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2