一、new方法
只要通过一个类调用类的new方法,也就是给类发送一个叫做new的消息之后,系统内部就回做3件事情:
1、为此类创建出来的对象在堆内分配存储空间
2、初始化此类创建出来的对象中的属性
3、返回此类创建出来的对象对应的地址
二、存储
创建对象的时候返回的地址其实就是类的第0个属性的地址
但是需要注意的是:类的第0个属性并不是我们编写的,而是一个叫isa的属性
isa是一个指针,占8个字节
其实类也是一个对象,平时我们所说的创建对象其实就是通过一个 类对象 来创建一个新的对象
类对象是系统自动帮我们创建的,里面保存了当前对象的所有方法
而实例对象是程序自己手动通过new创建的,而实例对象中有一个isa指针就指向了创建它的那个类对象
每次new都会创建一个新的对象,分配一块新的存储空间,如果修改a的属性不会影响b的属性,一个类可以创建多个对象
局部变量存储在栈中
全局变量存储在静态区
成员变量存储在堆中,不会自动释放,只能程序员自动释放
三、方法与函数的区别:
1、函数属于整个文件,方法属于某一个类,方法如果离开类就不行
2、函数可以直接调用,方法必须通过类或对象来调用
注:虽然函数属于整个文件,但如果把函数写在类声明中会不识别
3、不能把函数当作方法来调用,也不能把方法当函数来调用
消息机制:
使用对象调用方法就是oc中的消息机制
网友评论