您的位置:首页 > 其它

OC 复合问题 男人和女人问题

2015-10-27 21:08 357 查看
main.m

#import <Foundation/Foundation.h>
#import "Man.h"
#import "Women.h"
#import "Baby.h"
int main(int argc,const
char * argv[]) {

//创建一个宝宝给那个女的
Baby *child = [[Babyalloc]init];

//创建一个媳妇给那个男的
Women *wife = [[Womenalloc]initWithName:@"女"beautiful:@"100"child:child];

//创建一个男的
Man *man = [[Manalloc]initWithName:@"王龙"job:@"程序员"money:@"500"wife:wife];

[wife setHusband:man];//给媳妇加一个男的

NSLog(@"%@",man);//打印一个变量

return0;
}

Women.h
#import <Foundation/Foundation.h>

#import "Baby.h"
@class Man;
//@class 关键字告诉编译器 Man是一个类可以当做一个类去使用
避免循环导入头文件
@interface Women :
NSObject
{
NSString *_name; //
姓名
NSString *_beautiful;//
颜值
Man *_husband; //
丈夫
Baby *_child; //
宝宝
}
// 自定义初始化变量
- (instancetype)initWithName:(NSString *)name beautiful:(NSString *)beautiful child:(Baby
*)child;

// getter和setter方法
- (void)setHusband:(Man *)husband;
- (Man *)husband;

// 重写描述方法 自我介绍
- (NSString *)description;

//输出妻子的丈夫的名字
- (void)husbandName;

- (NSString *)sayHi;

@end
Women.m

#import "Women.h"
#import "Man.h"
//我需要声明的时候 可以使用@class
来告诉编译器 我是一个类
//如果你是要这个类的方法的时候还需要使用头文件
才能使用方法
@implementation Women

//自定义初始化方法
- (instancetype)initWithName:(NSString *)name beautiful:(NSString *)beautiful child:(Baby
*)child
{
_name = name;
_beautiful = beautiful;
_child = child;
returnself;
}
//getter setter方法
- (void)setHusband:(Man *)husband
{
_husband = husband;
}
- (Man *)husband
{
return_husband;
}

//重写description方法 自我介绍
- (NSString *)description

{
NSString *str = [NSString stringWithFormat:
@"姓名是:%@
颜值:%@ 丈夫:%@孩子:%@",_name,_beautiful,_husband,_child];
return str;
}

//输出妻子的丈夫的名字
- (void)husbandName
{
NSLog(@"我丈夫名字:%@",[_husband name]);
}

- (NSString *)sayHi
{
return@"输出女人的信息";
}

@end
Baby.h

#import <Foundation/Foundation.h>

@interface Baby : NSObject
{
NSString *_name;//姓名
NSString *_gander;//性别
}
@end
Baby.m

#import "Baby.h"

@implementation Baby

@end
Man.h

#import <Foundation/Foundation.h>
// 引入头文件
#import "Women.h"
@interface Man : NSObject
{
NSString *_name; //
姓名
NSString *_job; //
职业
NSString *_money;//

// 复合:在本类中 声明了一个其他类的对象
作为本类的实例对象
Women *_wife; //
媳妇

}
//自定义初始化对象
- (instancetype)initWithName:(NSString *)name
job:(NSString *)job
money:(NSString *)money
wife:(Women *)wife;

//setter getter方法
- (void)setWife:(Women *)wife;
- (Women *)wife;

//重写description方法 自我介绍
- (NSString *)description;

//getter 方法
- (NSString *)name;

@end
Man.m

#import "Man.h"

@implementation Man

//自定义初始化对象
- (instancetype)initWithName:(NSString *)name
job:(NSString *)job
money:(NSString *)money
wife:(Women *)wife
{
_name = name;
_job = job;
_money = money;
_wife = wife;
returnself;
}
//setter方法
- (void)setWife:(Women *)wife
{
_wife = wife;
}
//getter方法
- (Women *)wife
{
return_wife;
}

- (NSString *)name
{
return_name;
}

//自我介绍
- (NSString *)description
{
NSString *str = [NSStringstringWithFormat:@"姓名:%@工作:%@
钱:%@媳妇:%@",_name,_job,_money,[_wifesayHi]];
return str;

}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: