A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiushuo 中级黑马   /  2015-7-2 11:11  /  747 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类的扩展
一   类目
(类目也称为分类,为没有源码的类添加方法。)
1.作用
  1)可以扩展别人的类,可以作为子类的替代方法。
  2)把同一类的代码放到多个文件中。
2.形式
  1)文件名:目标类+类目名.h
                        目标类+类目名.m
  2).h文件中

      @interface 需要扩展的类的类名(分类名)
       -( )method;
      @end

3.注意
1)可以为同一个类添加多个类目,但类目名和方法不能重复。
  2)不可以随意重写类中的方法。
  3)所添加类与原类中方法同级,而且会被子类继承。
  

二 延展
(延展是特殊形式的类目)
1.作用
   为自己的类添加私有方法
2.形式
@interface  类名
   -( )method;
@end

@implementation 类名
……
@end

3.注意
1)不需要创建新文件,直接在原类的.m文件中声明和实现。
2)所谓私有时候仅.m通过[self method]访问,不能在外部通过[对象 method]访问。



三  协议
(协议是由@protocol 声明的一组方法列表,只声明方法,不具体实现)
1.作用
将方法定义剥离出来,形成一个单独的文件。
2.形式
@protocol 协议名<其他协议>
-()method;
@end
注:方法默认是@required 必须实现,如果可以不实现用@optional。

3.代理模式
(由别人帮自己实现某个功能的模式称为代理模式)
1)接受代理
@ interface 类名:父类名 <协议名>(多个协议之间用逗号隔开)
….
@end
2)确认协议
@implementation  类名
协议方法
{
}
@end
(代理是谁,谁接受并确认协议)


4.注意
1)协议声明了可以被任何类实现的方法。
2)协议定义了一个其他对象可以实现的接口。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马