2.延展
延展的作用就是定义自己的私有方法。
形式和类目相同,不用新创建文件,只是把类目的interface地方的文件放在了你需要扩展的类的.m文件里边。
import “Student.h”
@interface Student (extension)//为Student类创建一个私有的方法text
-(void)text;
@end
@implementation Student
-(void)hello;
{
[self text];
}
-(void)text
{
NSLog(@”你好”);
}
@end
外界 [student hello]的时候就会打印出“你好”。但是在外界不能调用text方法,[student text]是不对的。只能在.m文件里边通过self来调用私有方法text。隐藏了内部的实现。
3.协议
(1).协议声明了可以被其他的类实现的方法。协议本身必不会去实现。
(2).协议不是类,只是一个其他对象可以实现的接口。
定义一个协议:
import
import
import “RoomService.h”
@interface Men : NSObject
@property(nonatomic,retain)NSString * name;
@property(nonatomic,assign)id mate;//定义一个代理
-(id)initWithName:(NSString *)name;
-(void)needEat;
@end
定义一个Women类
import
import “MarryProtocol”
@interfaceWomen : NSObject //遵守协议
@property(nonatomic,retain)NSString * name;
-(id)initWithName:(NSString *)name;
@end
在Men的实现里边
-(void)needEat
{
[self.mate cook];
}
在Women的实现里边有一个方法
-(void)cook
{
NSLog(%@"wonmen正在做饭");
}
主函数里边
men.mate = women;
[men needEat];
打印出:wonmen正在做饭
4.协议也可以写在一个类里边,用到的时候引入类的头文件就可以。