OC3-完全形态的初始化,初始化方法;;遍历初始化
理解继承,掌握他的属性和方法的使用还有关系;;完全形态的初始化,初始化方法;;遍历初始化,
1.oc里面继承的特点:(1)继承中上一层时父类,下一层是子类,父类和子类时相对的。(2)所有的类是最根本的父类是NSObject:类的始祖(3)继承具有传递性(4)核心:子类能继承父类全部(private除外)特征和行为。
2.继承:(1)增强代码的复用性,减少代码的开发时间,实现的代码的层级分离,
3.继承的使用,(1)在interface后面 类名:父类名 继承实现。
注意:(1)oc中是单继承,多实现。只能有一个父类, (2)在继承一个类之前,需要先引入那个类的头文件
4.类之间属性的使用:一个类所拥有的属性,除了自身声明的之外,还包含父类声明的那些属性,
4.重写:
当父类的方法不能完全满足子类的需求,那么久在子类中对父类的方法进行重写,配合oc的消息发送机制,可以实现方法的替换。
子类重新实现父类中的一个或多个方法,不需要声明,直接实现。实现的方法名一定要和父类的完全一致。若不一致,重写美成功,这个方法就成了私有方法。
5.isa nsobject提供了一个实例变量,是一个结构体指针,指向保存类的信息。通常不操作,隐藏指针,
6.命名空间,是为了解决类名重复定义的问题,oc是通过前缀来解决,苹果保留所有两个字母前缀的使用权。
7.保留字:不确定用不用,作为保留,不允许用户使用,
8.代码规范的时候,在写类和类方法的时候,一定要加注释,多加注释。
9.初始化方法:(1)为实例变量赋值,保证值的正确性。
要求:(1)初始化方法在对象的整个生命周期中,只使用一次。生命周期:从创建申请到释放。可以多次调用,不建议去做,可能值已经变了。这也是为什么开辟空间和初始化通常写在一起,防止重复调用。
(2)初始化的执行流程,在初始化之前,会根据对象的实例变量的个数和类型申请足够大的内存。初始化的时候就是根据每个实例变量的类型在分配到的内存中,重新分配内存,初始化对象。
不完整初始化的问题,(1)初始化的时候,需要讲自己和父类的所有对象的实例变量都要初始化。容易漏掉容易出错不完整,(2)并不一定完全知道所有的父类具有的全部实例变量。
10.完全体的理解思路,初始化方法就是对成员变量对实例变量进行初始化,来自父类的实例变量就调用父类的方法对他们进行初始化,自己新增的实例变量就直接进行初始化。
11.self super 两个关键字。super :是编译器指令不是对象,代之这个类的父类。
self 如果是在类方法中,代之的是自身的类,如果是在实例方法中,代表的是调用这个方法的对象。
12.总结:初始化方法需要注意的事项:
(1)方法的类型是“-”(2)方法的返回值是(instancetype)(3)以init开头的并且符合驼峰命名法,建议用with。(4)可以带参数,个数没有限制,(5)完整的写法,调用父类的初始化方法,并使用if 判断是否调用成功。
13.便利构造器,便利的初始化方法:精神:牺牲小我,成就大我 做法是:在方法里面直接完成alloc和init.
(1)+方法(2)以小写的类名为开头,符合驼峰命名法。+(instancetype)anminlWithName(3)在方法,大括号中,建立对象申请内存alloc和inin,根据参数的值对对象的实例变量初始化,返回当前对象。
(4)作用是,返回一个已经初始化好的对象,对象的创建工作和初始化是在便利构造器中完成,外部补考虑。
(5)在调用时,方便快捷,内存管理便捷,不过是在类中多些一些代码。
通过类方法,实现类对象的快速获取,
10.谁污染谁治理,谁申请,谁初始化。