类的本质


  1. 在代码段存储类的那块空间是个什么类型的。在代码顿中存储类的步骤
  • 先在代码段中创建一个Class对象,Class是Foundation框架中的一个类,这个Class对象就是用来存储类信息的。
  • 将类的信息存储在这个Class对象之中,这个Class对象,至少有3个属性。
  • 类名:存储的这个类的名称
  • 属性:存储的这个类具有哪些属性
  • 方法: 存储的这个类具有哪些方法 所以,类是以Class对象的形式存储在代码段的,存储类的这个Class对象,我们也叫做类对象,用来存储类的1个对象。所以,存储类的类对象也有1个叫做isa指针的属性,这个指针指向存储父类的类对象。
  1. 如何拿到存储在代码段中的类对象 调用类的类方法class就可以拿到存储类的类对象的地址。
//c1是指针,在class不用加*
Class c1=[person calss];

调用对象的对象方法class就可以得到存储这个对象所属的类的class对象的地址。

Person *p1 = [person new]

对象中的isa指针其实就是代码段中存储类的类对象的地址。 3. 如何使用对象

  • c1对象就是person类,c1万起等价于person
  • 在使用person的地方完全可以使用c1来替代
  • 可以使用类对象来调用new方法,创建存储在类对象中的类的对象
person *p1=[person new];
Class c1 = [person class];
//其实创建Person对象,也可以这么做
Person *p2 = [c1 new];
  1. 使用类对象,只能调用类的类方法
学习