//

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

}

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

  1. 李洪强iOS开发之OC[017]函数和方法的区别

    // //  main.m //  15 - 函数和对象的方法的区别 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. ...

  2. 李洪强iOS开发之OC[014] -对象的存储细节

    // //  main.m //  13 - 对象的存储细节 // //  Created by vic fan on 16/7/9. //  Copyright © 2016年 李洪强. All r ...

  3. 李洪强iOS开发之OC[010] - 有参方法的声明实现和调用

    // //  main.m //  09 - 有参方法的声明实现和调用 // //  Created by vic fan on 16/7/5. //  Copyright © 2016年 李洪强. ...

  4. 李洪强iOS开发之OC[011] - 有参方法的声明实现以及调用练习

  5. 李洪强iOS开发之OC常见错误汇总

    // //  main.m //  16 - 常见错误汇总 // //  Created by vic fan on 16/7/13. //  Copyright © 2016年 李洪强. All r ...

  6. 李洪强iOS开发之OC[008] -创建一个对象并访问实例变量

    // //  main.m //  07 - 创建一个对象并且访问实例变量 // //  Created by vic fan on 16/7/3. //  Copyright © 2016年 李洪强 ...

  7. 李洪强iOS开发之OC[015]#pragma mark的使用

    // //  main.m //  14 - #pragma mark的使用 // //  Created by vic fan on 16/7/10. //  Copyright © 2016年 李 ...

  8. 李洪强iOS开发之OC[013] -类的创建的练习

    // //  main.m //  12 - 类的创建练习 // //  Created by vic fan on 16/7/9. //  Copyright © 2016年 李洪强. All ri ...

  9. 李洪强iOS开发之OC[012] -类的声明实现小结

    // //  main.m //  11 - 内容总结 // //  Created by vic fan on 16/7/9. //  Copyright © 2016年 李洪强. All righ ...

随机推荐

  1. OC6-网址分割

    // // HtmlManger.h // OC6-网址分割 // // Created by qianfeng on 15/6/17. // Copyright (c) 2015年 qianfeng ...

  2. spring quartz 定时任务“Failed to load class "org.slf4j.impl.StaticLoggerBinder”“Checking for available updated version of Quartz”

    Failed to load class "org.slf4j.impl.StaticLoggerBinder 需要slf4j-api.jar.slf4j-log4j12.jar Check ...

  3. java web 简单的分页显示

    题外话:该分页显示是用 “表示层-控制层-DAO层-数据库”的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指 ...

  4. SecureCRT for Linux突破30天使用限制

    当然还有一种方法,就是当你试用点i agree到时候,在~/.vandyke/Config 会生成一个文件SecureCRT_eval.lic,删除以后就可以恢复30天试用

  5. SQL SERVER 遇到Unable to find the requested .Net Framework Data Provider. It may not be installed. (System.Data)

    今天新装的SQLSERVER 2012 EXPRESS 用于客户端程序 安装完成后打开登陆SQLSERVER 一切正常 当查看表定义.视图结构时,弹出一下内容 Unable to find the r ...

  6. PHP 反射 ReflectionClass

    今天遇到了这样一个问题,如下代码: classA.php <?php class ClassA{ public function funcAa(){ } public function func ...

  7. 巧用Systemtap注入延迟模拟IO设备抖动

    原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: 巧用Systemtap注入延迟模拟IO设备抖动 当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或 ...

  8. Qt Creator (C++)保存文件

    最近在学习QT Creator,感觉很是头大.可能是刚刚学的原因吧,感觉完全没有C#好,好多东西完全搞不懂. C++虽然很灵活,但是也可能是太灵活了,总是搞得人一头雾水. 一个简简单单的保存文件,就让 ...

  9. [Linux] Linux学习笔记(5)-文件与目录管理

    1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...

  10. lazy instructor

    Description A math instructor is too lazy to grade a question in the exam papers in which students a ...