美文网首页
OC-类与对象

OC-类与对象

作者: 寻回骄傲 | 来源:发表于2017-06-28 09:55 被阅读8次

    一、new方法
    只要通过一个类调用类的new方法,也就是给类发送一个叫做new的消息之后,系统内部就回做3件事情:
    1、为此类创建出来的对象在堆内分配存储空间
    2、初始化此类创建出来的对象中的属性
    3、返回此类创建出来的对象对应的地址

    二、存储
    创建对象的时候返回的地址其实就是类的第0个属性的地址
    但是需要注意的是:类的第0个属性并不是我们编写的,而是一个叫isa的属性
    isa是一个指针,占8个字节

    其实类也是一个对象,平时我们所说的创建对象其实就是通过一个 类对象 来创建一个新的对象
    类对象是系统自动帮我们创建的,里面保存了当前对象的所有方法
    而实例对象是程序自己手动通过new创建的,而实例对象中有一个isa指针就指向了创建它的那个类对象
    每次new都会创建一个新的对象,分配一块新的存储空间,如果修改a的属性不会影响b的属性,一个类可以创建多个对象

    对象的存储细节.png isa指针.png

    局部变量存储在栈中
    全局变量存储在静态区
    成员变量存储在堆中,不会自动释放,只能程序员自动释放

    三、方法与函数的区别:
    1、函数属于整个文件,方法属于某一个类,方法如果离开类就不行
    2、函数可以直接调用,方法必须通过类或对象来调用
    注:虽然函数属于整个文件,但如果把函数写在类声明中会不识别
    3、不能把函数当作方法来调用,也不能把方法当函数来调用

    消息机制:
    使用对象调用方法就是oc中的消息机制

    相关文章

      网友评论

          本文标题:OC-类与对象

          本文链接:https://www.haomeiwen.com/subject/lnyecxtx.html