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. http://www.linuxidc.com/Linux/2007-09/7399.htm

    http://www.linuxidc.com/Linux/2007-09/7399.htm

  2. Android:为控件绑定监听器

    为控件绑定监听器主要分为以下步骤: 1.获取代表控件的对象2.定义一个类,实现监听器接口3.生成监听器对象4.为控件绑定监听器对象 实例:Button按钮----监听器OnClickListener ...

  3. MapReduce编程系列 — 4:排序

    1.项目名称: 2.程序代码: package com.sort; import java.io.IOException; import org.apache.hadoop.conf.Configur ...

  4. 游标-Oracle游标汇总

    游标(Cursor):用来查询数据库,获取记录集合(结果集)的指针,可以让开发者一次访问一行结果集,在每条结果集上作操作.    游标可分为:    <!--[if !supportLists] ...

  5. (组合数学3.1.2.2)POJ 2084 Game of Connections(卡特兰数公示的实现)

    package com.njupt.acm; import java.math.BigInteger; import java.util.Scanner; public class POJ_2084 ...

  6. VS2005工程增加SDK

    客户最近发过来一个VS2005的工程,此工程是基于Pocket PC 2003(ARMV4),需要改为我们WINCE6.0系统对应的SDK,下面具体说明如何添加新的SDK. 选择configurati ...

  7. 使用Spring框架的12个开源项目

    使用Spring框架的12个开源项目 http://www.csdn.net/article/2013-10-14/2817176-open-source-projects-that-use-spri ...

  8. 函数buf_LRU_get_free_block

    /******************************************************************//** Returns a free block from th ...

  9. chromium的部署工具depot_tools和gclient

    depot_tools是个工具包,里面包含gclient.gcl.gn和ninja等工具.其中gclient是代码获取工具,它其实是利用了svn和git.主要涉及的depot_tools文件夹下的文件 ...

  10. [2015编程之美] 第一场A

    #1156 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, 2, …, n.树中有n - 1条边,任意两个节点间恰好有一 ...