第一步,创建一个类文件,命名Students

这个类文件继承自NSObject

创建的类会生成两个文件 .h 文件和 .m文件
.h文件用来说明类的特征和属性
.m文件用来实现类的功能的实现

OC中的类两部分组成
1.结口文件 interface【译】界面

接口部分的实现

2.具体实现文件 implementation 【译】执行

实现部分

-到此,以上操作都是类的操作,现在可以根据上面做好的类来创建对象。(对象是类的具体化过程)
-由类生成对象的过程就是类的实例化过程
-一个实例就是一个对象,一个类可以生成多个对象
实例化主要在main函数中实现
实例化有三部分
①.创建对象(需要做三件事)
-1.对象声明
-2.内存分配
-3.初始化
②.给对象的实例变量赋值
③.调用方法

输出结果

类方法和实例方法
减号开头为 实例方法
需要实例化对象后通过对象进行调用。实例方法可以调用实例方法和实例变量。
\
加号开头为 类方法
不需要实例化对象,直接通过类调用。
上面程序中的Student类有两个实例方法。
在Student类中的接口文件.h中添加一个类方法。

然后在Student类的实现文件.m写类的实现方法

最后在mian.m文件中实现类方法的调用

输出结果为

在使用类方法时注意:
-类方法可以调用类方法
-类方法不可以调用实例方法
-类方法不能使用实例变量
在Student类的实现文件.m中进行以上几个的测试
-类方法可以调用类方法

-类方法不可以调用实例方法

-类方法不能使用实例变量

还有一点,在main函数的输出中,可以使用类名调用类方法,但是不能用对象调用类方法。

以上的报错的原因是
类方法可以对类方法里面进行调用,但是不能对对象方法里面进行调用。
(类方法作为消息,可以发送到类里面,但是不能发送到对象里面)
网友评论