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)类方法怎么去定义
+(返回值类型)方法名:(形参的类型) 形参名;
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有关联关系