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