李洪强iOS开发之OC[018]对象和方法之间的关系

//

//  main.m

//  18 - 对象和方法之间的关系

//

//  Created by vic fan on 16/7/14.

//  Copyright © 2016 李洪强. All rights reserved.

//

/**

 *

 OC有参有返回值的方法

 有参有返回值方法的声明

 - (int)sum:(int)x andY:(int)y;

 

 - (int)sum:(int)x andY:(int)y{

 

 return x+y;

 

 关系

 1 对象作为方法的参数;

 显示人的信息的方法

 - (void)showPerson:(Person *)person;

 2 对象作为方法的返回值

 变性方法

 - (Person *)changeSex:(Person *)person;

 

 *

 

 */

 

 

#import <Foundation/Foundation.h>

/**

 *  类的声明

 */

/**

 定义性别枚举

 */

typedef enum{

    // 0        1       2

    kSexWomen,kSexMan,kSexYao

    

}Sex;

 

@interface Person : NSObject{

    @public

    NSString *_name;//姓名

    int _age;//年龄

    Sex _sex;//性别

}

/**

 *  方法的声明

 */

 - (void)showPerson:(Person *)person;

 - (Person *)changeSex:(Person *)person;

 

@end

 

@implementation Person

 

- (void)showPerson:(Person *)person{

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

    

}

 

- (Person *)changeSex:(Person *)person{

    person->_sex = kSexWomen;

    return person;

}

 

@end

 

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

    @autoreleasepool {

        /**

         *  创建对象

         */

        Person *p = [Person new];

        /**

         *  给对象的实例变量赋值

         */

        p->_age = 18;

        p->_name = @"周杰伦";

        p->_sex = kSexMan;

        /**

         *  调用方法

         */

        [p showPerson:p];

        NSLog(@"性别:%d",p->_sex);

        Person *p2 = [p changeSex:p];

        NSLog(@"性别: %d",p2->_sex);

        

        

    }

    return 0;

}

 

posted @ 2016-07-15 00:06  李洪强  阅读(198)  评论(0编辑  收藏  举报