zoukankan      html  css  js  c++  java
  • oc必须知道的知识点

    id数据类型

    1.通用的指针类型
    2.没有*号
    3.使用id类型时,不能给对象的属性或成员变量进行赋值
    4.可以对其发送任何(存在的)消息
     

    import与@class的区别

    1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称
    2.如果类之间有循环依赖关系使用#import来相互包含,那么就会出现编译错误。
    3.如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。
    4.@class是放在interface中的
     
     

    Objective-c中提供了可以让我们扩展类定义的手段:

    1.类目:为已知的类增加新的方法;
    2.延展:通知在本类的定义里使用类目来声明私有方法;
    3.协议:协议声明了可以被任何类实现的方法。
     

    继承 多态 

      子类可直接“拥有“父类中所有允许子类继承的属性和方法
      OC中不允许子类和父类拥有相同名称的成员变量名;
     多态:不同对象以自己的方式响应相同的消息的能力叫做多态
    先有继承才有多态,没有继承就没有多态(父类指针指向子类对象)
    复合
      将多个组件组合在一起,形成一个整体,然后使用整体来进行工作,这种组合行为称为复合
     

    成员变量的限制条件

    1.public(公有的)  :实例变量可以在类的外部和内部操作
    2.protected(受保护的)实例变量只能在该类和其子类内操作
    3.private(私有的)实例对象只能在该类内访问
    4.在oc里面,所有的实例对象默认的可见度是受保护的
     

    类目 延展

       无法向类中添加新的实例变量。类别没有位置容纳实例变量。
       类目的方法名不能与类的方法名相同
       延展的作用就是定义自己的私有方法。
     

    self  super

          super  父类的标识,当我们需要使用父类的方法或者属性的时候,就可以使用super
         self  当前对象的指针,当前访问的对象是什么,当前指针就是谁。也就是说当前调用的是哪个类的实例方法,那self 就是这个类的指针
  • 相关阅读:
    Dynamic attention in tensorflow
    Dynamic seq2seq in tensorflow
    Tensorflow Seq2seq attention decode解析
    zz图像卷积与滤波的一些知识点
    Android SDK更新失败对策
    高维数据降维 国家自然科学基金项目 2009-2013 NSFC Dimensionality Reduction
    近期深度学习论文汇总
    PHP远程连接mysql报错处理办法
    zz 启动Matlab提示Microsoft Visual C++ 2005 Redistributable存在问题问题
    `fw服务端非完整` 工程开发初期的工作
  • 原文地址:https://www.cnblogs.com/lcl15/p/4944105.html
Copyright © 2011-2022 走看看