编程中的复合相当于音乐中作曲一样,将多个组件组合在一起,配合使用,从而得到完整的作品。
比如说一辆车需要有好多零件,每种零件作为一个对象,那么车就是这些零件的组合体,在程序中也就是车的成员变量是零件对象
下面来看一个小例子
首先定义一个轮胎的类
接下来定义一个发动机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的打印方法
复制代码
感觉上并不难,其实就是多个小零件类组成一个成品类
|
|