A.概念
类对象:类也是一个对象,是Class类型的对象
实例对象:创建的对象,有一个isa指针指向类
 
B.操作
获取内存中的内对象
1.
使用实例对象获取
Class c = [p class];
不必使用*
 
2.
使用类获取
Class c = [Person class];
 
C.类的加载
1.先加载父类,再加载子类,加载完会调用+load方法
2.类和分类的加载方法+load都会被调用
3.第一次使用类的时候,会调用+initialize方法
4.先加载父类,再加载子类,最后加载分类(依次调用+load方法),被编译就会被加载
5.先初始化父类,再初始化子类(调用+initialize方法),第一次使用的时候才会被初始化
6.类和分类的+initialize方法调用跟普通方法一样,优先调用分类的;存在多个分类并且都覆盖了+initialize方法的时候,调用最后被编译的。
—>
+load:类的加载方法===>父类、子类、分类的都会被调用
+initialize:类被第一次使用时调用的初始化方法==>父类、子类的都被调用,分类具有优先级比较
 
创建一个Student对象并初始化:
继承关系: NSObject -> Person -> Student -> GoodStudent
2014-11-13 23:51:16.600 06-类的本质[8205:303] Person被加载
2014-11-13 23:51:16.602 06-
类的本质[8205:303] Student被加载
2014-11-13 23:51:16.602 06-
类的本质[8205:303] GoodStudent被加载
2014-11-13 23:51:16.603 06-
类的本质[8205:303] Student+Study被加载
2014-11-13 23:51:16.603 06-
类的本质[8205:303] Student+Learn被加载
2014-11-13 23:51:16.604 06-
类的本质[8205:303] Person被第一次使用
2014-11-13 23:51:16.604 06-
类的本质[8205:303] Student+Learn被第一次使用
Program ended with exit code: 0
 
 
 
 

[Objective-c 基础 - 2.9] 类的本质的更多相关文章

  1. OC基础--类的本质

    类的本质: 类的本质其实也是一个对象(类对象),只要有了类对象, 将来就可以通过类对象来创建实例对象 程序中第一次使用该类的时候被创建,在整个程序中只有一份.此后每次使用都是这个类对象,它在程序运行时 ...

  2. 张超超OC基础回顾01_类的创建,申明属性,以及本质

    一. 类的声明和实现&规则 1.如何编写类的声明 以@interface开头 , 以@end结尾, 然后再class name对应的地方写上 事物名称, 也就是类名即可 注意: 类名的首字符必 ...

  3. python基础——使用元类

    python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...

  4. OC语言类的本质和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  5. OC 类的本质和分类

    一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一 ...

  6. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  7. OC-@property、self及类的本质

    让代码书写更加简便 --1-- 设置器和访问器 1.1 setter 1.2 getter --2-- 类的本质 2.1 类类型的对象 2.2 类的本质 2.3 如何获取类对象 2.4 类对象的使用 ...

  8. Python基础:新式类的属性访问

    一.概述 二.准备工作 1.讨论对象 2.名词解释 三.实例绑定的属性访问 1.获取属性 一般规则 参考源码 示例验证 2.设置属性 一般规则 参考源码 示例验证 3.删除属性 一般规则 参考源码 示 ...

  9. OC类的本质,深入探讨,load方法和initialize方法

    1:类的本质:类也是一种类,可以叫做类类,类对象,类类型: 2:类和对象在内存中分配问题(注意区分类的对象和类对象的概念) 类对象在内存中只有一份,且只加载一次,类对象中存放了类中定义的方法: 而成员 ...

随机推荐

  1. 选择排序的MPI实现

    #include "stdafx.h" #include "mpi.h" #include <stdio.h> #include <math. ...

  2. Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)

    在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘.网上常见的方法有: 1. InputMethodManager imm = (In ...

  3. ARM7ldr指令与ldr伪指令

    ldr伪指令的第二个操作数之前有个=,意思是第一个操作书 = 第二个操作数,相当明了 核心就在于对于用.word指令在.text段里另外定义一段内存,用ldr r0,[pc + x(可以算出.text ...

  4. Git教程(4)常用小技巧之标签

    Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated). 一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用. 然而,附注标签是存储在 Git ...

  5. C# winform DataGridView

    C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...

  6. 【HDOJ】4358 Boring counting

    基本思路是将树形结构转线性结构,因为查询的是从任意结点到叶子结点的路径.从而将每个查询转换成区间,表示从该结点到叶子结点的路径.离线做,按照右边界升序排序.利用树状数组区间修改.树状数组表示有K个数据 ...

  7. git svn rebase出现了checksum mismatch的错误

    http://stackoverflow.com/questions/3156744/git-svn-rebase-checksum-mismatch This solution was the on ...

  8. Java面试题-锁

    1. 什么是可重入锁(ReentrantLock)?  答:  java.util.concurrent.lock 中的 Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作 ...

  9. 函数 buf_block_init

    /********************************************************************//** Initializes a buffer contr ...

  10. [POJ 2461] Billiard

    同swustoj 11 Billiard Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1362   Accepted: 8 ...