Objective-C学习笔记第五章复合

来源:互联网 发布:照片动画制作软件 编辑:程序博客网 时间:2024/04/27 23:17

第五章复合

一、什么是复合composition

编程中的复合就好像音乐中多个乐器组合在一起使用

 

Objective-C中,复合是通过包含作为实例变量的对象指针实现的

 

举例代码:Unicycle类中拥有一个指向Pedal对象的指针和一个指向Tire对象的指针

@interface Unicycle : NSObject

{

         Pedal *pedal;

         Tire *tire;

}

@end // Unicycle

我们可以说PedalTire通过复合的方式组成了Unicycle

 

严格的讲,对象间的组合才叫复合,intfloatenumstruct等基本类型都被认为是对象的一部分

 

二、存取方法accessor method

存取方法是用来读取或改变对象特定属性的方法,即专门为类中成员变量赋值的方法

 

在对其他对象的属性进行操作时,应始终使用对象所提供的存取方法,永远不直接改变其他对象属性的数值

 

举例代码:

@interface Car : NSObject

{

         Engine *engine;

         Tire *tires[4];

}

-(Engine *) engine;                                                 Engine对象的getter

-(void) setEngine:(Engine *) newEngine;          Engine对象的setter

-(Tire *) tireAtIndex :(int) index;                         Tire对象的getter

-(void)      setTire : (Tire *)tire                             Tire对象的setter,需要序号参数

                   atIndex :(int)index;

-(void) print;

@end//Car

 

setter方法通常根据更改的属性前加上前缀set来命名

getter方法则仅仅根据其返回的属性的名称命名

           因为getCocoa中有特殊的含义,使用get意味着这个方法会通过你当做参数传入  的指针来返回数值,这意味着使用get开头的方法传入的通常都是指针

 

三、复合还是继承

何时用继承,何时用复合呢?

继承在对象间建立了is a关系

复合建立的has a关系

0 0
原创粉丝点击