Objective-C - 对象作为方法的参数

Objective-C - 对象作为方法的参数:以人在遛狗为例

人遛狗,人拥有一个遛狗的方法,需要在遛狗的方法中传一条狗对象给人.

在人的对象方法中狗对象做为参数传递.


#import <Foundation/Foundation.h>


#pragma mark -

#pragma mark 狗类的声明实现

//声明

@interface YYDog : NSObject

{

@public

    NSString *_name;

    int _age;

    NSString *_color;

}


- (void)sayHi;

@end


//实现

@implementation YYDog


- (void)sayHi

{

    NSLog(@"哈喽! 我是 %@ %@, 我今年%d岁了! ", _color, _name, _age);

}

@end


#pragma mark - 

#pragma mark 人类的声明和实现

//声明

@interface YYPerson : NSObject

{

@public

    NSString *_name;

    int _age;

    

}


- (void)eatWithFood:(NSString *)foodName;

- (void)liuGouWith:(YYDog *)dog;

@end


//实现

@implementation YYPerson


- (void)eatWithFood:(NSString *)foodName

{

    NSLog(@"今天的午饭%@ 真好吃啊! ", foodName);

}


- (void)liuGouWith:(YYDog *)dog

{

    NSLog(@"我在遛够, 哈哈! ");

    dog-> _name = @"小白";

    [dog sayHi];

}

@end




int main(int argc, const char * argv[]) {

    

    //创建人对象

    YYPerson *xiaoxue = [YYPerson new];

    xiaoxue->_name = @"小雪";

    xiaoxue->_age = 18;

    //创建狗对象

    YYDog *wangcai = [YYDog new];

    wangcai->_name = @"旺财";

    wangcai->_age = 3;

    wangcai->_color = @"黄色";

    //调用对象方法

    [xiaoxue eatWithFood:@"红烧鱼"];

    //对象作为参数的传递,传递的是地址,所以方法内部可以修改外界的狗对象的值.

    //旺财的名字在方法内部被修改成了小白

    [xiaoxue liuGouWith:wangcai];

    

    

    return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值