黑马程序员--对象和方法之间的关系

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

/*
 对象和方法之间的关系
 1.对象作为方法的参数
 
         方法名    形参参数类型  形参参数名
 -(void)disPerson:(Person *) person;
 
 Person *p1 = [Person new];
 
 [p disPerson:p1]  //对象作为方法的实参
 
 2.对象作为方法的返回值
 -(Person *)changSex:(Person *) person;
 
 */


#import <Foundation/Foundation.h>
typedef enum{kSexMan,kSexWomen} Sex;
//定义个Person类
@interface Person : NSObject
{
    @public
    NSString *_name;
    Sex _sex;
}
//对象作为方法的参数
-(void)disPerson:(Person *) person;
-(Person *)changSex:(Person *) person;
@end

@implementation Person
//对象作为方法的参数
-(void)disPerson:(Person *) person{
    NSLog(@"姓名:%@,性别%d",person->_name,person->_sex);
}
//对象作为方法的返回值
-(Person *)changSex:(Person *) person{
    //修改性别
    person->_sex=kSexWomen;
    return person;
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建对象p
        Person *p=[Person new];
        //创建对象p1
        Person *p1=[Person new];
        p1->_sex=kSexMan;
        p1->_name=@"李四";
        Person *p2=[Person new];
        p2->_sex=kSexWomen;
        p2->_name=@"张三";
        [p disPerson:p1];
        [p disPerson:p2];
        
        //修改性别
        //[p changSex:p1];
        Person *p3 = [p changSex:p1];    // p3 和 p1 都指向同一个空间
        
        NSLog(@"姓名:%@,性别%d",p3->_name,p3->_sex);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值