类的深入研究

图片 1

使用场合:在不改变原来类的模型的基础上给类扩充新的方法

关于分类我们如何创建分类:打开Xcode 然后建立一个类 之后如图:

图片 2

点击我所选中的那个图标

下一步是:

图片 3

在中间那个选择类型就是我们的分类

如果我们想给那个类创建分类就在第三行写上我们类名

如:

图片 4

我是给我们高俊这个类创建了一个分类 而分类的名称就是:高俊2

注意的是:我们不要忘记在main函数前面写上分类的声明

分类可以封装不同功能的方法(以后我们的项目大的时候就需要分类封装了这样会使我们
的代码更加清晰)一般是以模块名命名的

注意:分类不能扩充成员变量

类的应用:格式:

下面我给的这几张图片就是关于我们分类的应用,这里面就有关于我们分类的格式:

分类的声明:

图片 5

分类的实现:

图片 6

分类在我们的main函数的调用:

图片 7

这个代码的作用就是找出一串字符串里面的所有的数字

1、其实类也是一个对象

2、我们所说的类其实就是Class类型的对象

3、Class创建Person类对象(注意是类对象而不是对象、Class类型的对象)

利用Person类对象创建Person类型的对象

一个类在储存空间中只有一个类对象,但是可以有无数个类型的对象

类的加载与初始化

先加载父类再加载子类

其中有一个类方法:

当程序运行的时候,就会加载一次项目中的所有的类与分类。类一旦加载完毕就会调用+load方法

同时当我们第一次调用这个方法的时候就会另外调用+initialize方法

而两者中间的作用就是 :

图片 8

减号开头的description方法决定了实例对象的输出结果

而我们一加号开头的description方法决定的是我们类对象的输出结果

当我们想打印我们对象的信息的时候就可以利用这个方法。当然打印结果就是

<类名:内存地址>

而如何是我们的-description方法返回的是我们对象的属性:就是利用重写

图片 9

以前我们说的每一个方法都在类里面有一定的储存空间,现在我们再说的细致一点

其实每一个方法地址都对应了一个SEL数据

当我们调用我们的test方法时:

1、他是先把我们的test方法包装成SEL数据

2、再拿着SEL到我们的类中找到对应的方法地址

3、根据方法地址调用对应的方法

开发中我们知道这个SEL的价值:

当我们只知道一个方法名的字符串的时候,我们可以通过以下方法进行调用方法:

图片 10

其他一些关于我们的SEL的知识:

图片 11

相关文章