zoukankan      html  css  js  c++  java
  • 黑马程序员——点语法、description、SEL、id使用

    黑马程序员——点语法、description、SEL、id使用

     

    ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

    点语法介绍与使用

    **p.age;**

    对象.属性名

    注意:此时,(对象.属性名)并不是直接访问实例变量。而是看到点语法后,会帮我们自动替换成p.age=18-替换->  [p setAge:18];

    *************************

    int a=p.age;//调用get方法

    注意:当看到p.age出现在等号右侧的时候,会自动替换成p.age--替换-->[p age];

     

    强调:p.age到底是替换成get还是set方法,一般取决于p.age出现在等号左侧还是右侧(是设置值还是赋值)

     

    死循环:

    set方法:

    - (void) setAge:(int)newAge {

        // 下面的代码会引发死循环

        self.age = newAge;

    }

    相当于

    - (void) setAge:(int)newAge {

        [self setAge:newAge];

    }

    死循环:

    在get方法中,return self.age相当于[self age];

    ********************************

    description方法介绍及重写

    当以%@的格式,打印对象或类,此时调用了对象的description方法。对象中如果没有重写父类的description方法,则调用父类的

    ********************************

    SEL 方法的存储位置

     是对方法的包装,包装成SEL类型数据

     根据SEL数据找到对应的方法地址

     根据方法地址调用相应的方法

    例:把test方法包装成SEL类型

    SEL s1 = @selector(test);

    使用:

    [p performSelector:test];

    *********************************

    强制类型转换例:

    NSObject *obj=[Animal new];

    [(Animal*)obj run];

    [(子类名*)指针名 行为]

    *********************************

    id使用:

    不需要强制类型转换,可直接使用,认为是动态类型,编译器在检查类型。

    id obj;

    obj=dog;

    [obj run]

    相当于NSObject *

     

    instancetype与id

    相同:都可以作为方法的返回类型

    不同:

      instancetype可以返回和方法类型相同的对象。id只能返回未知类型的对象

      instancetype只能作为返回值,id还可以作为参数

    ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

  • 相关阅读:
    Zookeeper 笔记
    个人学习笔记
    VS Window窗体 (C#)程序 连接sql server 数据库
    每周总结 11.9~11.15
    需求分析 第七稿 功能实现进度09
    数据简单清洗和图标联动展示
    IDEA创建文件自动添加作者名及时间
    springcloudalibaba中文文档
    ContractHolder.parseAndValidateMetadata(Ljava/lang/Class;)Ljava/util/List;
    Sentinel fallback失效
  • 原文地址:https://www.cnblogs.com/gaozp/p/4914528.html
Copyright © 2011-2022 走看看