A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安若曦 中级黑马   /  2015-9-7 15:43  /  526 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
对象和方法之间的关系:
      1、对象作为方法的参数
       //       方法名    形参数类型    形参数名
       -(void)dispPerson:(Person *)person;

       Person *p1 = [Person new];

       [p dispPerson:p1];      //对象作为方法的实参
      2、对象作为方法的返回值
*/
如:
#import <Foundation/Foundation.h>
//定义人的性别的枚举
typedef enum{kSexMan,kSexWomen} Sex;

//定义一个Person类
@interface Person : NSObject
{
    @public
    NSString *_name;
    Sex _sex;
}
//对象作为方法的参数
-(void)dispPerson:(Person *) person;
//对象作为方法的返回值
-(Person *)changeSex:(Person *) person;
@end


@implementation Person
-(void)dispPerson:(Person *) person{

    NSLog(@"姓名:%@,性别:%d",person->_name,person->_sex);

}
//对象作为方法的返回值
-(Person *)changeSex:(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->_name = @"柯南";
        p1->_sex = kSexMan;
        [p  dispPerson:p1]; //此时对象p1作为方法的实参
                   //调用dispPerson 方法之后得出的结果是:姓名:柯南,性别:0

        //修改性别
        [p changeSex:p1];
        NSLog(@"姓名: %@,性别:%d",p1->_name,p1->_sex);
        //修改性别后的打印结果:   姓名:柯南,性别:1

    }





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马