知识点
注意事项
面向对象编程
OOP(Object Oriented Programming)
面向对象语言
C++,JAVA,C#,OC,Swift
概念
类,对象,封装,继承,多态...
面向过程编程
分析解决问题的步骤,实现函数,依次调用
面向对象编程
分解问题组成的对象,协调对象间的联系和通信,解决问题.
面向过程以过程为编程中心,面向对象以对象为编程中心.
面向对象编程设计
1.分析涉及到的对象.2.根据功能定义类.3.使用对象的功能完成程序
类和对象
1.类和对象是面向对象的核心.2.类是对象的类型.3.对象是类的实例.4.万事万物皆对象.
OC中类的定义
1.面向对象编程中使用对象完成程序.2.开发中:先定义类,再创建对象,然后适用对象.3.定义类包含两部分:接口部分和实现部分.分开写(1.接口部分:对外声明类的特征和行为.2.实现部分:对内实现行为.)
接口部分
1.接口部分标志:@interface...@end2.作用:声明类的实例变量(特征)和方法(行为).3.包含内容:类名,父类名,实例变量,方法等.
实现部分
1.实现部分标志:@implementation...@end.2.作用:实现方法,即实现类的行为.
类和文件
.h称为接口文件或头文件,.m称为实现文件
创建对象
1.创建对象分两步:分配内存空间和初始化.2.分配内存空间:根据类中声明的实例变量为对象分配内存,并返回首地址.3.初始化:为对象的实例变量设置初始值.
创建对象
+(id)alloc;(+,表示这个方法属于类,只能类执行,id返回值类型,表示任意类型的对象) -(id)int;-表示这个方法属于对象,只能对象执行.id返回值类型,表示初始化完成的对象.
使用对象
指针存储对象的首地址,代指对象.
简单方法
OC中的方法分两种:类方法和实例方法.
类方法
只能类使用.例如:+(id)alloc,注意:类方法中不能使用实例变量.
实例方法:
只能对象使用,例如-init
setter和getter
为实例变量赋值方法称为setter,读取实例变量的方法称作getter(访问器);
第二节 继承、初始化方法、遍历构造器
基础语法:http://blog.sina.com.cn/s/blog_814ecfa90102vtul.html
继承:http://blog.sina.com.cn/s/blog_814ecfa90102vtw0.html
知识点
注意事项
继承
面向对象的语言提供了继承语法,能够大大简化代码,把公共实例变量和方法写在父类里,子类只需要写自己独有的实例变量和方法.继承即能保证类的完整,又能简化代码.父类可以有多个子类,子类只可以有一个父类.OC里边继承是单向的,不能相互继承.继承具有传递性,子类能继承父类全部的特征和行为.
继承的特点
OC只允许单继承.没有父类的类称为根类,OC中的根类是NSobject.如果父类的方法不满足子类的需求,子类可以重写父类的方法.继承具有传递性
继承中方法的执行
逐级向上,找到就执行,找不到就崩溃
super
1.super是编译器指令,并非类或者对象.2.作用:给super发消息,执行父类中对应的方法.3.子类可以重写父类的方法,子类既可以有自己的实现,又有父类继承中的实现,如果想使用父类的实现,需要向super发消息.
初始化方法
1.创建对象分两步:分配内存,初始化.2.初始化方法的主要作用是:为某些实例变量赋值.3.初始化方法在整个对象生命周期里只使用一次.3.父类中声明了公共的实例变量.作为父类也应该有自己的初始化方法,为这些公共实例变量赋初值.4.子类定义了除父类公共实例变量外的实例变量,在自身的初始化方法中,优先向super发送init消息,初始化公共变量,初始化成功后,再初始化自身特有变量,从而完成自身全部实例变量的初始化.
初始化过程
1.执行父类中实现的初始化方法(向上递归到NSObject类中的初始化方法).2.从根类NSObject开始执行初始化方法3.判断父类中的初始化是否成功,即self是否存在.4.完成对象的初始化设置,返回对象.5.初始化子类实例变量.
初始化方法特征
1.初始化方法是”—”号方法.2.以init开头.3.可以带0到多个参数.4.返回值是id或者instancetype类型.5.内部实现:先执行super的初始化方法,再初始化自身变量,最后return self
便利构造器
1.便利构造器在初始化方法的基础上前进了一小步,封装了对象的创建过程.2.便利构造器以”+”方法,返回本类型的实例对象,方法名以类名开头.3.可以有0到多个参数.4.内部实现:封装了alloc和初始化方法,使用起来更加方便.
|