//创建对象 // Car * car = [Car new]; // [Car new]做了3件事情 // 1)相当于申请了内存空间 // 2) 给类中的每一个成功初始化值 // 3)返回新申请的空间的首地址
// 1、申请的内存空间在哪个区? //new的时候 申请的空间在内存的堆区(程序动态分配的内存空间) //new的时候 内存的布局是这样的 //如果实例变量基本数据类型,此时初始化为0 //如果 。。。 OC字符串类型 null
// 2、实例变量又保存在什么地方 // 堆区 //p(指针变量) 存放在栈区
// 3、对象方法保存在什么地方 // 代码区
// 4、为什么使用[p run];就可以调用方法?如何调用 //首先找p对应的堆区空间,然后找到 _isa指针,在找到_isa指向的代码区空间,然后到该空间找 方法
|