你的位置:首页 > 操作系统

[操作系统]OC 类目、协议


类目:为现有的类添加新方法

1.需要添加该类的新方法,但是不能继承该类的情况下

类目使用需要注意的问题:

         1.类目里面不能添加实例变量,但是类目可以声明属性,但必须实现set get 方法,在这两个实现方法里面依然不能使用自己添加的实例方法

         2.类目里添加的方法不能和原类中的方法重名,否则会导致覆盖

         3.一个类可以添加多个类目,但是类目名和方法名不能重复

         4.类目中的方法可以成为原始类的一部分,和原始类方法级别相同,可以被子类继承

类目的创建与使用:

File:是类目的名称

File Type:是类型,这是选择Category

Class:是填写所要添加类目的类

//添加后的类目名

//在.h文件里添加方法-(void)hi;在.m文件实现

在main文件里调用,记得导入类目文件

这样,类目就创建并实现好

 

 

隐藏类目(延展):类目的私有方法

在需要添加类目的类的.m文件里面#import "类名"下面添加

//这一块就是延展(匿名类目)

@interface Student()

//建议把实例变量放在延展里面

{

    NSInteger _age;

}//解决需要添加私有方法,但是又不能声明在头文件声明的矛盾

@property(nonatomic,strong)NSString* name;

//在这里声明私有方法

-(void)printHello;

@end

 

这样一个匿名类目就完成了,需要注意的是在main的文件里可以printHello方法不能使用,printHello是私有方法,不能给其他类使用,只能由匿名类目的类去调用

 

协议:是一套标准,这个标准里声明了很多方法,但是补关心具体这些方法是怎么实现的,具体的实现是由遵循这个协议的类去完成

OC里面继承关系是单继承,但有时候我们需要使用多继承,这时候我们就可以使用协议


File:协议名字

File Type:类型(选择Protocol)

 

 

//创建Student类,

Student.h文件

Student.m

实现协议里面的方法

在main文件里面实现

 

 

 

这样,一个简单的协议就已经实现