main.m
Man *laowang = [Man manWithName:@"haohao" gender:@"男" age:0]; laowang.age = 20; Woman *sister = [Woman womanWithName:@"奶茶" gender:@"女" age:0]; sister.age = 20; [laowang playGame]; [laowang makeMoney]; [sister shopping]; [sister fallInLove]; sister.delegare = laowang; [sister findFloodDirty];
Man.h
#import <Foundation/Foundation.h> #import "Woman.h" @interface Man : NSObject<MarryDelegate> @property (nonatomic, retain) NSString *name; @property (nonatomic, retain) NSString *gender; @property (nonatomic, assign) NSInteger age; - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; - (void)sayHi; - (void)playGame; - (void)makeMoney; @end
man.m
@implementation Man - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { if (self = [super init]) { self.name = name; self.gender = gender; self.age = age; } return self; } + (id)manWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { return [[Man alloc] initWithName:name gender:gender age:age]; } - (void)sayHi { NSLog(@"我是%@ ,性别%@,年龄%ld", self.name, self.gender, self.age); } - (void)playGame{ NSLog(@"小撸怡情,大撸伤身!"); } - (void)makeMoney{ NSLog(@"挣钱,给老婆花"); } #pragma ---marray - (void)cleanHouse { NSLog(@"结婚扫地,呵呵,赚到了"); } - (void)cooking{ NSLog(@"不敢相信,我做的饭这么好吃"); } - (void)washFeet { NSLog(@"我说洗脚,你就相信"); } - (void)washCloth { NSLog(@"偶尔洗洗"); } //生孩子 - (void)giveBathToChild { NSLog(@"生孩子是两个人的事"); } @end
Woman.h
@protocol MarryDelegate <NSObject> //扫地 - (void)cleanHouse; - (void)cooking; - (void)washFeet; - (void)washCloth; @optional //生孩子 - (void)giveBathToChild; @end @interface Woman : NSObject @property (nonatomic,retain) NSString *name; @property (nonatomic,retain) NSString *gender; @property (nonatomic,assign) NSInteger age; //代理属性 //女人的丈夫,必须服从结婚协议 --- MarryDelegate @property (nonatomic,assign) id<MarryDelegate> delegare; - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age; - (void)sayHi; - (void)shopping; - (void)fallInLove; //地脏了 - (void)findFloodDirty; - (void)hungary; - (void)clothDirty; - (void)lonely; @end
woman.m
#import "Woman.h" @implementation Woman - (id)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { if (self = [super init]) { self.name = name; self.gender = gender; self.age = age; } return self; } + (id)womanWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age { return [[self alloc] initWithName:name gender:gender age:age]; } - (void)sayHi { NSLog(@"我是%@,%@的,芳龄%ld",self.name, self.gender, self.age); } - (void)shopping { NSLog(@"哎呀,衣服好漂亮!"); } - (void)fallInLove { NSLog(@"呵呵,又谈恋爱了"); } //地脏了 - (void)findFloodDirty; { [self.delegare cleanHouse]; } - (void)hungary { [self.delegare cooking]; } - (void)clothDirty { [self.delegare washCloth]; } - (void)lonely { //判断代理是否想去生 if ([self.delegare respondsToSelector:@selector(giveBathToChild)]) { [self.delegare giveBathToChild] ; } }