类的本质

类的本质 

1、类类型的变量(实例对象) 

Person *p = [Person new];
//
把类的代码加载到代码区
//产生一个类对象,类型是Class isa指向代码区的Person

//实例化对象三件事
//申请空间 初始化 返回地址

//对象isa 指向类对象 

2、类的本质 

类的本质其实也是一个对象(类对象)

类对象
*类对象再程序运行时一直存在。 

*类对象是一种数据结构,存储类的基本信息:类大小,类名称,类的版本以及消息与函数 的映射表等 

*类对象所保存的信息在程序编译时确定,在第一次使用该类的时候被加载到内存中。 

*类对象代表类,class代表类对象,类方法属于类对象 

*如果消息的接收者是类名,则类名代表类对象 

*运行时,所有类的实例都由类对象生成,类对象会把实例的isa的值修改成自己的地址, 每个实例的isa都指向该实例的类对象, 

*从类对象里可以知道父类信息、可以响应的方法等 

*类对象只能使用类方法,不能用实例方法 

Person *p = [Person new]; 

p 实例对象

Person 也是一个对象(类对象),是Class类型 


3、类对象如何获取 

1)通过实例对象获取

Dog *dog = [Dog new];
Dog *d2 = [Dog new];
//第一种方法获取类对象
Class c = [dog class]; 
Class c2 = [d2 class];

2)通过类名获取(类名其实就是类对象) 


类对象的使用 

1、类对象的用法 

1)可以用来调用方法 

2)可以用来实例化实例对象 


类对象的存储细节 

001723_tdjL_2432308.png




转载于:https://my.oschina.net/TaciturnKnightYQ/blog/537195

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值