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

时间:2022-01-28 10:47:19

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

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

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

李洪强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;

}