/* 对象和方法之间的关系: 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
}
|