对象存储的细节
1.申请的空间在内存的哪个区 new的时候申请的空间在内存的堆区(程序动态分配的内存空间) new的时候内存的布局是这样的 初始化的时候: 如果实例变量是基本数据类型,初始化为0 OC字符串型, 为null 2.实例变量保存在堆区,指针变量 (p) 放在栈区 3.对象方法保存在代码区 4.为什么使用[p run];就可以调用方法了 首先找p对应的堆区空间,然后找到_isa指针,再找到_isa指向的代码区的空间, 然后到该空间中找方法 5.一个类可以创建多个对象函数和对象方法的区别 对象方法: 1.对象方法的实现只能写在@implementation...@end中, 对象方法的声明只能写在@interface...@end中间 2.对象方法都以-开头,类方法都以+开头 3.对象方法只能由对象来调用,类方法只能有由类来调用 4.函数属于整个文件,可以写在文件中的任何位置,包括@implementation...@end中, 但写在@interface...@end中会无法识别,函数的声明可以写在main函数的内部或外部 5.对象方法归类对象所有 函数: 1.所有的函数都是平行的 2.函数不存在隶属关系 3.使用的时候可以直接调用 4.不可以访问对象中的成员变量 |
|