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. Eclipse插件—Easy Explorer

    如何使用Eclipse插件—Easy Explorer Easy Explorer是一个Eclipse插件,主要用于快速浏览项目文件的目录,实用性比较强. 使用方法如下:  1.下载Easy Expl ...

  2. jquery中事件重复绑定以及解绑问题

    一般的情况下,对于这种情况,我们常规的思路是,先解绑,再绑定,如下: $(selector).unbind('click').bind('click',function(){....}); 当这样会有 ...

  3. [topcoder]ZigZag

    http://community.topcoder.com/stat?c=problem_statement&pm=1259&rd=4493 动态规划题.如果不用DP,暴力的应当在2^ ...

  4. CentOS7.1配置远程桌面

    网上看了很多资料,完全是乱的. 我使用的是CentOS7.1的系统.我的要求是windows的客户机可以远程访问CentOS系统. 1,首先需要检查一下服务器是否已经安装了VNC服务,检查服务器的是否 ...

  5. MySQL复制应用中继日志解析

    前言:SQL线程应用中继日志,在binlog_format是row格式的时候,是居于主键更新,下面结合一张图来证明 1.从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(P ...

  6. Git教程(11)把本地的项目传到远程

    1,在远程建立仓库 得到远程仓库地址,如:  https://github.com/paulboone/ticgit 2,进入到项目根目录,初始化一个本地仓库 $ git init 3,为本地仓库添加 ...

  7. WinAPI——钩子函数大全3

    函数原形:LRESULT CALLBACK JournalPlaybackProc(int code, WPARAM wParam, LPARAM lParam); 参数: code:指示一个代码,被 ...

  8. C#创建XML文件并保存

    随着XML的普及以及在动态WEB应用程序中大量应用,如何通过.NET创建,删除,修改XML文件变的也来也重要了.一个简单的概念是,XML文件跟大的文本文件并没有什么区别,同时它是先于.NET出现,很多 ...

  9. dp和px,那些不得不吐槽的故事——Android平台图

    http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html 一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理 ...

  10. 【HDOJ】4251 The Famous ICPC Team Again

    划分树模板题目,主席树也可解.划分树. /* 4251 */ #include <iostream> #include <sstream> #include <strin ...