• OC-id、构造方法


    1. id
    1. 简介
    • 万能指针,能指向任何OC对象,相当于NSObject *
    • id类型的定义
    typedef struct objc_object {
    
        Class isa;
    
    } *id;
    1. 使用
    // 注意:id后面不要加上*
    
    id p = [Person new];
    1. 局限性

    调用一个不存在的方法,编译器会马上报错

    1. 构造方法:---用来初始化对象的方法,是一个对象方法
    1. 对象创建原理
    • new的拆分两部曲
    • 分配内存(+alloc)
    • 初始化(-init)
    Person *p1 = [Person alloc];
    
    Person *p1 = [p1 init];

    合成一句后:

    Person *p = [[Person alloc] init];
    1. init方法的重写
    • 目的:为了让对象创建完毕后,成员变量马上就有一些默认的值
    • init方法的重写过程
    • 先初始化父类,后初始化子类
      • 先调用父类的构造方法([super init])
    1. 复制代码
      - (id)init
      {
          if (self = [super init])
      
          {
              _age = 10;
          }
          return self;
      }

    自定义构造方法

    • 构造方法的一些规范
    • 返回值是id类型
    • 方法名都以init开头
    • 复制代码
      - (id)initWithAge:(int)age {
      
          if (self = [super init]) {
      
              _age = age;
          }
          return self;
      }
      复制代码

         传递多个参数进行初始化

    - (id) initWithAge:(int)age andNo:(int)no;

          .h和.m文件的抽取

    • 每个类分布在不同文件中
    • 类的声明放在.h文件,类的实现放在.m文件
    • 若想使用某个类,就包含某个类的.h声明文件
  • 相关阅读:
    第二阶段冲刺第二天
    第二阶段冲刺第一天
    学习进度表_十四周
    购买图书
    学习进度表_十三周
    寻找水王续
    学习进度表_十二周
    《梦断代码》读后笔记_4
    找水王
    学习进度表_十一周
  • 原文地址:https://www.cnblogs.com/IDRI/p/4954070.html
Copyright © 2020-2023  润新知