关于objective-c中类的组合

来源:互联网 发布:时间压缩 知乎 编辑:程序博客网 时间:2024/06/10 18:15

关于objective-c中类的组合问题,我们先来看一道题:

1.设计2个类,类之间的关系自拟(比如继承、组合)
1> 身材数据
(1)属性
* 身高
* 体重
* 手长
* 脚长

(2)方法
* 属性相应的set和get方法

2> 人
(1)属性
* 年龄
* 身高
* 体重
* 手长
* 脚长

(2)方法
* 属性相应的set和get方法

思路:在这道题里面,人拥有一份 身材数据 ,所以用组合关系,在人这个类里面组合身体数据这个类,来实现。
实现代码如下:
// 身材数据@interface BodyData : NSObject{    int _height; //  身高    int _weight; //体重    int _handLength; // 手长    int _legLength; // 腿长}// 身高的getter和setter- (int)height;- (void)setHeight:(int)height;// 体重的getter和setter- (int)weight;- (void)setWeight:(int)weight;// 手长的getter和setter- (int)handLength;- (void)setHandLength:(int)handLength;// 腿长的getter和setter- (int)legLength;- (void)setLegLength:(int)legLength;@end@implementation BodyData// 身高的getter和setter- (int)height{    return _height;}- (void)setHeight:(int)height{    _height = height;}// 体重的getter和setter- (int)weight{    return _weight;}- (void)setWeight:(int)weight{    _weight = weight;}// 手长的getter和setter- (int)handLength{    return _handLength;}- (void)setHandLength:(int)handLength{    _handLength = handLength;}// 腿长的getter和setter- (int)legLength{    return _legLength;}- (void)setLegLength:(int)legLength{    _legLength = legLength;}@end// 人@interface Person : NSObject{    int _age; // 年龄    BodyData *_bodyData; // 身材数据}// _age的setter和getter- (void)setAge:(int)age;- (int)age;// _bodyData的setter和getter- (void)setBodyData:(BodyData *)bodyData;- (BodyData *)bodyData;@end//实现@implementation Person// _age的setter和getter- (void)setAge:(int)age{    _age = age;}- (int)age{    return _age;}// _bodyData的setter和getter- (void)setBodyData:(BodyData *)bodyData{    _bodyData = bodyData;}- (BodyData *)bodyData{    return _bodyData;}@endint main(){    Person *p = [Person new];    // 设置年龄    [p setAge:20];        // 设置身材数据    BodyData *b = [BodyData new];    [b setWeight:60];    [b setHeight:170];        [p setBodyData:b];        return 0;}



0 0