OC 类的存储细节
来源:互联网 发布:java飞机大战复杂子弹 编辑:程序博客网 时间:2024/04/29 08:06
说明:
示例代码:
#import <Foundation/Foundation.h>@interface Person:NSObject{ @public NSString *name; int _age; float _weight;}-(void)walk:(int)num;@end@implementation Person//每走一百步,体重减少0.2-(void)run:(int)num{ _weight-=100/num * 0.2f; NSLog(@"%@ has walk %d, your weight is %f",name, num, _weight);}@endint main(int argc, const char * argv[]){ @autoreleasepool { // Person *person = [Person new]; person->name = @"tom"; person->_age = 22; person->_weight = 120.0f; [person walk:50]; } return 0;}
解析:
创建类Person
Person p=[Person new];
Person p1=[Person new];
此时:
1)申请了内存空间,
———-》申请的空间在内存的“堆区“
2)给事例变量初始化
———-》p(指针变量) 存放在“栈区“
3)返回了空间的首地址
———-》对象代码保存在“内存代码区”
4)[p run]方法运行的原理:
p从内存栈区指向堆区的_isa指针地址,_isa又找到内存代码区,指向run方法
事例图
总结:不同的对象在内存里的地址是不相同的
0 0
- OC 类的存储细节
- OC 对象的内存存储细节(类方法及对象方法的调用细节)
- OC-1-对象的存储细节、#progma mark指令、NSString类
- OC学习对象的存储细节,isa指针
- 黑马程序员------OC中对象的存储细节
- 类对象的存储细节
- OC学习旅程(二)类和对象的存储细节、#paragma mark 和 新建类时的常见错误
- OC类注意细节归纳
- 对象的存储细节
- 存储类细节增益
- OC基础-06 对象在内存中的存储细节
- 54,对象的存储细节
- 基类与派生类的内部存储细节
- OC类的小知识点扩充与应注意的细节
- OC高级foundation框架类以及数据的简单存储
- OC语言细节总结
- OC语法细节
- 黑马程序员--OC自学笔记---02对象存储细节、NSString简介、多文件开发
- 第12周-阅读程序(3)
- bullet物理引擎btBvhTriangleMeshShape,btHeightfieldTerrainShape的使用
- Java 并发:Executors 和线程池(不错)
- jquery 加载页面
- 我的 Vim 配置
- OC 类的存储细节
- HDOJ/HDU 2549 壮志难酬(取小数点后几位~)
- mybatis-简单的增删改查操作
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- 第12周-阅读程序(4)
- 2016Android某公司面试题
- 了解UNITY中的多线程及使用多线程
- Java线程池
- R语言学习五 函数、循环、条件表达