//

//  main.m

//  13 - 对象的存储细节

//

//  Created by vic fan on 16/7/9.

//  Copyright © 2016年 李洪强. All rights reserved.

//

#import <Foundation/Foundation.h>

问题 1 :

[person new]

做了哪三件事情?

1 申请了内存空间

2 初始化类中的实例变量

3 返回对象的内存地址

问题 2 :

[person new] 创建的对象在内存的哪个区?

堆区

问题 3: 实例变量存储在内存的哪个区

实例变量存储在内存的堆区      指针p存储在栈区

问题 4  [p run] 是怎么调用的?

先去找堆区的对象,再去找isa指针,有了isa指针,才能找到

代码区的类(Person),找类中所存贮的方法.

isa 指针是对象中的隐藏指针,指向创建这个对象的类

--------------------------------

分析:

Person *p = [Person new];

等号左边:

Person类   程序会在3代码区开闭一块内存

定义一个指针: 在栈区(P指针是局部变量)

等号右边:

1 在堆区申请内存空间

2  初始化实例变量

1栈区          2堆区  ----->    3代码区  内存地址: ox111

person类中的所有代码

P指针           isa指针          实例变量:

_name = null    _name;

_age = 0       _age;

方法:

_run{

}

并没有开辟内存

发送一个消息就是调用方法

底层是C语言的,在调用一个函数 obj_msgsend

一个类可以创建多个对象,但是每个对象的地址不是相同的

*/

@interface Person : NSObject{

@public

//定义实例变量

NSString *_name;//姓名

int _age;//年龄

}

//方法的声明;

- (void)run;//人跑的方法的声明

@end

//类的实现

@implementation Person

//方法的实现

- (void)run{

NSLog(@"周杰伦的床边故事");

}

@end

int main(int argc, const char * argv[]) {

@autoreleasepool {

Person *p = [Person new];

p->_age = 12;

p->_name = @"李洪强";

//调用方法

[p run];

}

return 0;

}

最新文章

  1. 通过一个demo了解Redux
  2. Java概述
  3. PhpStorm 相关激活方式
  4. 关于xml的使用。
  5. phonegap之android原生日历调用
  6. 关于lwip移植到ucsos-ii平台的遇到的问题(一)
  7. centos 防火墙设置
  8. Debian下安装deb格式安装包
  9. 初识view
  10. NET知识大纲
  11. C++的三大特性之一继承
  12. JDBC与反射
  13. The most interesting feature of iPhone X - FaceID
  14. composer包(发布到github上)同步到Packagist
  15. python 单例实现
  16. 找出程序GasMileage中的哪一行与下列叙述相对应:
  17. python基础一 -------如何在列表字典集合中根据条件筛选数据
  18. [转]list的交集,差集,并集
  19. Python while 循环
  20. Windows:添加、删除和修改静态路由

热门文章

  1. lnmp下配置虚拟主机
  2. Android发送请求到不同的Servlet,但都是一个Servlet处理
  3. 使用tortoise git管理gitolite版本库
  4. liunx下vi命令详解
  5. asp.net 生成PDF方法
  6. 5、WPF实现简单计算器-非常适合初学者练习
  7. innobackupex:Error:xtrabackup child process has died at /usr/bin/innobackupex
  8. MySQL在ROW模式下通过binlog提取SQL语句
  9. 【转载】 使用Anemometer基于pt-query-digest将MySQL慢查询可视化
  10. WCF-Configuration