1、类方法
1)什么是类方法
对象方法:
-(返回值类型)方法名:(形参的类型)形参名;
类方法
+(返回值类型)方法名:(形参的类型)形参名;
2)类方法怎么去定义
+(返回值类型)方法名:(形参的类型)形参名;
3)类方法的使用
调用:
对象方法:[对象名
方法名:实参]
类方法:[类名
方法名:实参]
4)使用类方法的好处
1)提高效率
2)减少内存空间占用
3)代码更加简洁
缺点:不能访问对象的成员变量
5)对象方法和类方法的对比
类方法
对象方法
以+开头
以-
开头
只能使用
类名
去调用
只能使用对象去调用
不能访问成员变量
可以访问成员变量
类方法中可以调用对象方法在对象方法中,可以直接调用类方法
1)对象作为方法的参数传递过来
2)在方法中通过创建对象,然后
再调用
2、匿名对象的使用
匿名对象 -
创建了对象,但是没有指针去指向它
[Person new];
特点:
每次使用都会新申请一块内存空间
1)可以访问成员变量
[Person new]->_name = @"三胖";
NSLog(@"%@",[Person new]->_name); //null
2)可以调用方法
[[Person new] run];
3)可以作为方法的参数
[p goHome:[Car new]];
3、面向对象特性-封装
1) 什么是封装?
把复杂的数据或者操作进行隐藏,只提供操作数据或者方法的接口
好处:
如果要操作数据、方法必须按照要求
1)隐藏数据
2)隔离变化
3)保护数据安全
2) 不封装有什么缺点?
对象失去了对对象自己的成员变量的管理权
3)
如何进行封装?
通过定义相关的方法,去读取或者写入数据到成员变量中
并且成员变量的操作必须通过方法来完成
1)读方法(getter)
- 读取成员变量的值
规范:
1)一定是一个对象方法
2)一定有返回值
3)方法名一定是
去掉下划线的
成员变量名
4)一定没有参数
5)方法的实现中:一定是返回值成员变量名
2)写方法(setter)
- 给成员变量赋值
OC中的规范:
1)一定没有返回值
2)一定是对象方法( -)
3)方法名一定是以set开头
格式:set +
去掉下划线的成员变量名的首字母大写
4)一定有参数
5)参数的类型一定是和成员变量类型一致
6)形参的名称一般建议是
去掉下划线的成员变量名
7)写方法的实现中,一定是给成员变量赋值
4、对象和对象之间的关系
1)
组合模式
由若干个类型相同或者实现了同一个接口的对象组合到一起
2)
依赖关系
A对象作 B对象的方法形参或者方法的局部变量使用,B依赖A
3)
关联关系
A对象
作为B对象的一个成员变量,A和B有关联关系
1)在线安装(需要联网,速度慢)
2)需要自行下载离线文档包(速度快,复制文档到指定目录即可)
5、Xcode文档安装方法
1)方法重载,在一个类中定义同名的方法,但是方法的参数类型或者个数不同
OC中没有方法重载:因为“方法名:“
才是真正的方法名
6、关于OC中方法重载问题
1)static不能修饰类的实例变量
黑马程序员--IOS基础第十八天(OC)
最新推荐文章于 2015-10-19 10:24:22 发布