objective-c类对象的理解

刚开始学习 oc 的时候,对 oc 很感兴趣的就是那套 runtime 机制。觉得能把c 变成一套面向对象的机制,还是蛮厉害的。后来又学习了一下 runtime,其中对 oc 的类对象一直搞不清楚,尤其搞不清楚就是类也是一个对象这种说法。因为以前学习 c++的时候,学的就是类用来定义一个对象的,类是虚的,类只是一个定义。而在 oc 中类也是一个对象。
而且 oc 中,由于 runtime 机制把 oc 的代码编译成了c 的代码以后,类和对象其实就比较像了。对象和类都是数据结构,对象只定义了一个指向类的指针,类才定义了成员变量,成员方法,属性,协议之类的东东
在 oc 中,类是用来生成实例对象的,类中保存了实例对象所需的所有东东。当实例对象发送消息的时候,其实就是去自己所在的类中的方法类表中去查找。而类是有谁生成呢,类是有元类来生成的。因为类中虽然保存了成员方法,但是却没有保存类方法(类方法其实就是 C++中的静态方法),类方法是保存在元类中的。所以如果向类发送一个消息,那么类就会去相应的元类中寻找方法。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值