类的本质

来源:互联网 发布:美工设计是什么 编辑:程序博客网 时间:2024/06/08 16:52

1.       类加载,当类第一次被访问的时候,这个类就会被加载到代码段存储起来

2.       存储的步骤:

a)      先在代码段中创建1个Class对象,Class是foundation框架中得一个类,这个Class对象就是用来存储类信息的

b)     将类存储在这个Class对象之中

                     i.           这个Class对象,至少有3个属性

1.       类名:存储这个类的类名

2.       属性s:存储这个类具有哪些属性

3.       方法s: 存储这个类具有哪些方法

                   

   所以.类是以Class对象的形式存储在代码段的.

         存储类的这个Class对象我们也叫做类对象. 用来存储类的1个对象.

  所以,存储类的类对象也有1个叫做isa指针的属性这个指针指向存储父类的类对象.

4. 如何拿到存储在代码段中的类对象.

     1). 调用类的类方法 class 就可以得到存储类的类对象的地址。

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

3).对象中的isa指针的值其实就是代码段中存储类的类对象的地址.

     注意:

     声明Class指针的时候不需要加* 因为在typedef的时候已经加了*了.

使用:

a)     使用类对象来调用类的类方法

b)     使用类对象来调用new方法

<span style="font-size:18px;">Person *p1 = [Person new];         Class c1 = [Person class];        //其实创建Person对象 也可以这么做.         Person *p2 = [c1 new];</span>



4.注意:

使用类对象,只能调用类的类方法,因为类对象就等价于存在其中的类

0 0
原创粉丝点击