zoukankan      html  css  js  c++  java
  • 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.谁污染谁治理,谁申请,谁初始化。

  • 相关阅读:
    C#驱动mysql明明数值不为空却一直说DBNull.Value的诡异情况
    WinForm解决UI假死
    js实现的简单遮罩层
    mongodb C#连接报错 Invalid credentials for database 'admin'
    c#记录代码运行的耗时。
    C# LINQ
    timeScale减速对动画影响的处理方法(转)
    委托
    Unity3D单例类模板类
    Unity协程(Coroutine)管理类——TaskManager工具分享(转)
  • 原文地址:https://www.cnblogs.com/ytmaylover/p/5049181.html
Copyright © 2011-2022 走看看