李洪强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;
}
李洪强iOS开发之OC[018]对象和方法之间的关系的更多相关文章
- 李洪强iOS开发之OC[017]函数和方法的区别
// // main.m // 15 - 函数和对象的方法的区别 // // Created by vic fan on 16/7/12. // Copyright © 2016年 李洪强. ...
- 李洪强iOS开发之OC[014] -对象的存储细节
// // main.m // 13 - 对象的存储细节 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All r ...
- 李洪强iOS开发之OC[010] - 有参方法的声明实现和调用
// // main.m // 09 - 有参方法的声明实现和调用 // // Created by vic fan on 16/7/5. // Copyright © 2016年 李洪强. ...
- 李洪强iOS开发之OC[011] - 有参方法的声明实现以及调用练习
- 李洪强iOS开发之OC常见错误汇总
// // main.m // 16 - 常见错误汇总 // // Created by vic fan on 16/7/13. // Copyright © 2016年 李洪强. All r ...
- 李洪强iOS开发之OC[008] -创建一个对象并访问实例变量
// // main.m // 07 - 创建一个对象并且访问实例变量 // // Created by vic fan on 16/7/3. // Copyright © 2016年 李洪强 ...
- 李洪强iOS开发之OC[015]#pragma mark的使用
// // main.m // 14 - #pragma mark的使用 // // Created by vic fan on 16/7/10. // Copyright © 2016年 李 ...
- 李洪强iOS开发之OC[013] -类的创建的练习
// // main.m // 12 - 类的创建练习 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All ri ...
- 李洪强iOS开发之OC[012] -类的声明实现小结
// // main.m // 11 - 内容总结 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All righ ...
随机推荐
- OC6-网址分割
// // HtmlManger.h // OC6-网址分割 // // Created by qianfeng on 15/6/17. // Copyright (c) 2015年 qianfeng ...
- 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 ...
- java web 简单的分页显示
题外话:该分页显示是用 “表示层-控制层-DAO层-数据库”的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指 ...
- SecureCRT for Linux突破30天使用限制
当然还有一种方法,就是当你试用点i agree到时候,在~/.vandyke/Config 会生成一个文件SecureCRT_eval.lic,删除以后就可以恢复30天试用
- 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 ...
- PHP 反射 ReflectionClass
今天遇到了这样一个问题,如下代码: classA.php <?php class ClassA{ public function funcAa(){ } public function func ...
- 巧用Systemtap注入延迟模拟IO设备抖动
原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: 巧用Systemtap注入延迟模拟IO设备抖动 当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或 ...
- Qt Creator (C++)保存文件
最近在学习QT Creator,感觉很是头大.可能是刚刚学的原因吧,感觉完全没有C#好,好多东西完全搞不懂. C++虽然很灵活,但是也可能是太灵活了,总是搞得人一头雾水. 一个简简单单的保存文件,就让 ...
- [Linux] Linux学习笔记(5)-文件与目录管理
1.Linux目录结构为树状结构,最顶层的目录为跟目录"/",其它目录通过挂载可以将它添加到目录树中,通过解除挂载移除它们. 2.绝对路径与相对路径 绝对路径写法:由根目录&quo ...
- lazy instructor
Description A math instructor is too lazy to grade a question in the exam papers in which students a ...