oc-10-对象做参数

//
//  main.m
//  6-【掌握】对象和方法之间的关系

#import <Foundation/Foundation.h>

//声明人类
@interface Person : NSObject
{
    @public
    NSString *_name;//名字
    int _age ; //年龄
    int _sex; //性别 1表示男 2表示女  3表示未知
}

//方法
-(void)eat;
//声明了一个看孩子的方法  方法的参数 kid 类型是人类 Person *
-(void)takeCareOfKid:(Person *)kid;
//声明了一个 生孩的方法 方法的返回值类型  Person *
-(Person *)giveBirthTokid;
@end

//人类实现
@implementation Person
//方法
-(void)eat{
    NSString * str = @"sadasd";
    NSLog(@"吃吃吃");
}
//实现了一个看孩子的方法  方法的参数 kid 类型是人类 Person *
-(void)takeCareOfKid:(Person *)kid{
    NSLog(@" %@ 在看 名字为 %@的 %d岁的小孩时  打....",_name,kid->_name,kid->_age);
}

//实现了一个 生孩的方法 方法的返回值类型  Person *
-(Person *)giveBirthTokid{
    Person *p = [Person new];
    p->_name =@"凤姐的孩子 不是猴子 ";
    p->_age = 18;
    NSLog(@"凤姐 p = %p",p);
    return p;
}
@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        //NSLog(@"Hello, World!");
        
        Person *zhangsan = [Person new];
        zhangsan->_name = @"班长";
        zhangsan->_age = 20;
        
        
        Person *kidddddd = [Person new];
        kidddddd->_name = @"猴子 我是猴子 我不是凤姐的孩子 ";
        kidddddd->_age = 3;
        
        [zhangsan takeCareOfKid:kidddddd];
        NSLog(@"猴子地址  %p",kidddddd);
        
        
        Person *ssss = [zhangsan giveBirthTokid];
        
        
        NSLog(@"name = %@,生的孩子地址 sssss = %p ",ssss->_name,ssss);
        
        
        
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yaowen/p/5306792.html