标签:
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1、对象的存储细节
类创建对象,每个对象在内存中都占居一定的储存空间,每个对象都有一份属于自己单独的成员变量,所有的对象公用类的成员方法,方法在整个内存中只有一份,类本身在内存中占据一份储存空间,类的方法存在于此。
举例:
#import <Foundation/Foundation.h>
//Person.h文件
@interface Person:NSObject
{
int _age;
NSString *_name;
}
-(void)run;
@end
//Person.m文件
@implementation Person
-(void)run{
NSLog(@"人在跑”);
}
@end
int main(int argc, const char * argv[]){
@autoreleasepool{
Person *pe = [Person new];
pe.name = @“李雪”;
pe.age = 18;
NSLog(@"姓名:%@, 年龄:%d",pe.name,pe.age);
[pe run];
//[Person new];做了三件事情
//1、申请内存空间
//2、给实例化变量初始化
//3、返回空间的首地址
//问题1:申请的空间在内存的哪个区?
// new 的时候申请的空间在内存的堆区(程序动态分配的内存空间)
//初始化时 如果实例变量是基本数据类型此时给初始化为0
// 如果是OC字符串类型给初始化为null
//问题2:实例变量又保存在声明地方?
// 堆区 指针变量存放在栈区
//问题3:对象方法保存在什么地方?
//代码区
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/luxuezhu/p/4653694.html