//
// 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;
}