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

本文通过编程实现了一个简单的家庭关系模型,包括一个男的、一个媳妇和一个宝宝之间的互动。展示了如何在Objective-C中使用类、初始化方法、属性和方法来描述并操作这些角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;


// gettersetter方法

- (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









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值