A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HiGodl 中级黑马   /  2015-9-23 09:31  /  432 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程中的复合相当于音乐中作曲一样,将多个组件组合在一起,配合使用,从而得到完整的作品。
        比如说一辆车需要有好多零件,每种零件作为一个对象,那么车就是这些零件的组合体,在程序中也就是车的成员变量是零件对象
        下面来看一个小例子

首先定义一个轮胎的类
  1. //因为只是举个栗子就简单写了
复制代码
接下来定义一个发动机Engine类
  1. @interface Engine : NSObject
  2. @end//Engine----定义Engine类
  3. @implementation Engine
  4. -(NSString *) description{
  5.     return (@"i am a engine Vroooooom!!!");
  6. }
  7. @end // Engine---定义Engine方法(<span style="line-height: 2.2em;">重写description方法</span><span style="line-height: 2.2em;">)</span>
复制代码
下面定义一个以Tire和Engine为成员变量的Car类
  1. @interface Car : NSObject{
  2.     Tire * _tires[4];  //长度为4的轮胎对象数组
  3.     Engine * _engine;  //发动机
  4. }
复制代码
接下来是main方法
  1. int main(int argc, const char * argv[]) {
  2.     Tire * tire =[[Tire alloc] init]; //实例化tire
  3.     NSLog(@"%@",tire);  //打印Tire  打印---I am a tire , I last a while
  4.     Engine * engine = [[Engine alloc] init];  //实例化Engine
  5.     NSLog(@"%@",engine);  //打印Engine 打印---i am a engine Vroooooom!!!
  6.     Car *car = [[Car alloc] init];   //实例化Car
  7.     [car setEngine:[[Engine alloc] init]]; //设置car的Engine
  8.     for(int i=0;i<4;i++){
  9.         [car setTire:[[Tire alloc] init] atIndex:i]; //设置car的四个轮胎
  10.     }
  11.     [car print]; //执行Car的打印方法
复制代码

感觉上并不难,其实就是多个小零件类组成一个成品类





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马