6.ios-类存管理与分类

知识点
1.自动释放池
2.继承与多态

========================
自动释放池
1.什么是自动释放池
2.自动释放池的作用
1)思考:如何释放在函数中需要返回的对象
3.如何创建一个自动释放池
@autoreleasepool{} --- IOS5.0以后
4.自动释放池如何释放对象内存
1)autorelease消息
作用:表示延时一会再释放,给对象打上一个autorelease
表示将该对象加入一个最近的自动释放池。
当自动释放池销毁的时候会对自动释放池当中的所有
对象做一次release操作
5.自动释放池的栈式结构管理
6.autoreleasepool原理
自动释放池会将所有在池中的对象保存在一个数组当中,
当释放池销毁时,会对该数组当中的所有对象做一次release操作

========================
继承与多态
1.什么是继承
继承是使用已存在的类的定义作为基础建立新类的技术,
新类的定义可以增加新的数据或新的功能,也可以使用父类的功能
2.继承的作用
1)以现有的类型创建新的类型
2)快速方便的扩展代码
3.继承的方式
4.继承层次
1)什么是父类(超类,基类)和子类(派生类)
2)父子继承关系
5.字段的消息的继承
1)oc中成员变量的三种访问方式
@public :可以被所有函数访问,并且可以被子类继承
@protected :不能被外部函数访问,并且可以被子类继承
@private :不能被外部函数访问,并且不能被子类继承
2)消息的继承
oc中所有的函数(消息)都是公有的,也就是说所有的消息都能被子类继承
6.重写
1)什么是重写
2)重写的作用
扩展父类的功能
3)重写消息的调用
1>oc的消息都是虚函数
oc中的函数调用都是在运行时候确定的
2>self和super
4)重写NSObject基类
init消息
description消息
dealloc消息

7.重载
1)什么是重载
OC中并没有严格意义上的重载
因为OC通过函数名来区分不同的函数
2)重载的作用
print

3)oc中的重载
OC中不存在重载

8.继承关系
1)从功能上分析,子类的功能>=基类的功能
2)从继承关系上分析,基类>子类 long int
3)基于第二点,所以可以用父类的指针引用子类的对象,
这种现象称之为向上类型转换,是一种隐式转换,相反需要强制类型转换

==========================
多态
条件: 继承, 重写父类, 虚函数

1.什么是多态
1)对象根据根据消息而做出不同的响应
2)作用:提高程序的复用性,可扩展和可为维护性
2.多态的实现方式
1)必须继承
2)通过父类引用子类
3.父子类都有的函数调用原则
4.不同的指针是否能调用对象中的全部函数
1)父类引用子类对象时,只能访问父类和子类共同的方法
2)思考:是否可以通过子类来引用父类对象
3)思考:如何调用子类中的方法
5.id类型变量能调用哪些函数
1)id类型引用的对象,即可以调用子类中的方法,也可以调用父类中的方法

=========================
类别 (category)
1.什么是分类
分类是一种编译时的手段,允许我们通过给一个类添加方法来扩充它
(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码
2.作用
1)可以为一个类创建一个新的方法,而不需要在代码中编辑类定义
2)通过类别的方式,可以将类的实现分散到不同的文件里
3.如何创建类别
4.类别的使用
1)包含类别头文件
5.类别中需要注意的地方
1)无法向类中添加新的实例变量,类别没有位置容纳实例变量
2)可以访问该类中的所有成员和方法
3)名称冲突,即当类别中的方法与原始类方法名称冲突时,
类别具有更高的优先级。类别方法将完全取代初始方法从而无法再使用初始方法,因此不推荐这么做
6.方法调用的优先级:
1)分类 > 原来类 > 父类
2)多个Category中如果实现了相同的方法,只有最后一个参与编译的才会有效。

扩展(Extension)
1.什么是扩展
扩展就是匿名分类
2.分类和扩展的区别
1)分类中不允许添加新的属性
2)扩展允许添加新的属性


//
课后作业:
1.有矩形和正方形两个类,成员变量有宽width,高height,面积,周长,用尽量简单的方法创建这两个类

2.设计关于宠物的两个类
猫 属性:身高,体重 方法:跑,跳,洗脸
狗 属性:身高,体重 方法:跑,跳,摇尾巴
用尽量简单的方法创建这两个类

 

3.幼儿园丢了糖果,老师问小男孩和小女孩:
小男孩说:不是我
小女孩说:是他
编写程序,模拟上述过程
4.
有三种汽车 ,货车,卡车,公交车,速度分别是 60, 40,30
有三种路, 高速路,乡间小路,山路, 速度加成分别0,-10, -20
S T
求 任意车,通过任意长的路,用多少时间

posted @ 2015-08-17 20:55  ios-C  阅读(196)  评论(0编辑  收藏  举报