• OC的SEL和id


    SEL s2 = @selector(eat:);

     [ani performSelector:s2 withObject:@"一块沾有粑粑的棒棒糖"];

     [ani performSelector:@selector(eat:andFoodName:)

     withObject:@"班长养的恶狗"withObject:@"一块沾有粑粑的棒棒糖"];

     SEL(是一个包含地址的类型)

    22)id类型:

    NSObject和id类型都可以指向任何对象

     NSObject会进行编译时检查(需要强制类型转换)

     id不需要强制类型转换,id可以直接使用

     编译器看到id类型,认为是动态类型,不在检查类型

    23)多态:

    父类不能访问子类方法

     多态的概念:不同的对象以自己的方式响应相同名称的能力称为多态

     体现出来:父类的指针指向了子类的对象

     多态的条件:1)有继承关系

     2)有方法重写 (子类把父类的同名方法给重写了)

     多态的使用注意:

    1)使用子类的方法如果父类中没有此方法则使用子类强制类型转换

     类对象的获取方法:

     类对象属于Class类型

     1)通过实例对象来获取

     Class c1 = [d class];

     Class c2 = [d1 class];

     2)通过类名来获取类对象

     Class c3 = [Dog class];

     NSLog("%p", c3);

    24)构造方法:

    new方法的内部会分别调用两个方法类完成3件事情:

     1)使用alloc方法来分配存储空间(返回分配的对象);

     2)使用init方法来对对象进行初始化;

     3)返回对象的首地址

     init是一个对象方法

     [Person alloc] 的时候,内存已经被清0(其中的属性被0初始化)

     OC构造方法,学习哪些内容:

    主要学习如何重写构造方法,让对象创建成功后,就有初始的值

     super指代的是父类对象

    25)自定义构造方法:

    1)是一个对象方法:

     2)返回是id类型(instancetype)

     3)方法名一定要以 initWith

     -(instancetype)initWithName:(NSString *)name andAge:(int)age{...}

     Person *p1 = [Person alloc] initWithName:@"张三丰"andAge:

  • 相关阅读:
    android 权限及原理
    通讯协议的相关知识(备忘)
    MongoDB安装以及java开发入门<二>
    Struts2架构图
    Lucene查询对象笔记_TermQuery(笔记)
    mongodb指南(翻译)(二十) developer zone 索引(四)地理信息索引(转载)
    项目结尾公共模块WebService封装
    Redhat 5.5下安装MongoDB
    wsimport生成客户端出现的异常
    Hibernate关于空间表查询时的的一个异常
  • 原文地址:https://www.cnblogs.com/coolcold/p/4674381.html
Copyright © 2020-2023  润新知