Objective-C 学习笔记 11 分类和协议

11.1 分类

当我们需要为一个类增加方法的时候,通常我们只需要继承这个类,然后在子类中增加方法即可。然而,这种方式并不是总能奏效的,特别是当我们没有该类的源代码,而需要重新编写该类的某个函数的时候。类别这种技术就允许我们对已经存在的类不用继承也可以为其增加功能。
声明FractionMath的头文件
§ #import “Fraction.h”
§
§ @interface Fraction (Math)
§ -(Fraction*) add: (Fraction*) f;
§ -(Fraction*) mul: (Fraction*) f;
§ -(Fraction*) div: (Fraction*) f;
§ -(Fraction*) sub: (Fraction*) f;
§ @end
FractionMath.m
FractionMath类的实现
§ #import “FractionMath.h”
§
§ @implementation Fraction (Math)
§ -(Fraction*) add: (Fraction*) f {
§ return [[Fraction alloc] initWithNumerator: numerator * [f denominator] +
§ denominator * [f numerator]
§ denominator: denominator * [f denominator]];
§ }
§
§ -(Fraction*) mul: (Fraction*) f {
§ return [[Fraction alloc] initWithNumerator: numerator * [f numerator]
§ denominator: denominator * [f denominator]];
§
§ }
§
§ -(Fraction*) div: (Fraction*) f {
§ return [[Fraction alloc] initWithNumerator: numerator * [f denominator]
§ denominator: denominator * [f numerator]];
§ }
§
§ -(Fraction*) sub: (Fraction*) f {
§ return [[Fraction alloc] initWithNumerator: numerator * [f denominator] -
§ denominator * [f numerator]
§ denominator: denominator * [f denominator]];
§ }@end
main.m
主程序
§ #import

协议和代理

定义一个协议很简单,只要使用@protocol指令。
Printing.h
声明一个Pringting协议
§ @protocol Printing
§ -(void) print;
§ @end

Fraction.h
声明Fraction类的头文件
§ #import

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值