21.3.4 处理分数的Calculator类
接下来,到了了解Calculator类的时候了。这个类的概念类似于本书中我们以前开发的相同名称的类。然而在这个例子中,我们的计算器必须知道如何处理分数。下面给出了我们新Calculator类的接口与实现文件。
代码清单21-2 Calculator.h接口文件
import<UIKit/UIKit.h>
import“Fraction.h”
@interface Calculator:NSObject{
Fraction*operand1;
Fraction*operand2;
Fraction*accumulator;
}
@property(retain, nonatomic)Fractionoperand1,operand2,*accumulator;
-(Fraction*)performOperation:(char)op;
-(void)clear;
@end
代码清单21-2 Calculator.m实现文件
import“Calculator.h”
@implementation Calculator
@synthesize operand1,operand2,accumulator;
-(id)init
{
self=[super init];
operand1=[[Fraction alloc]init];
operand2=[[Fraction alloc]init];
accumulator=[[Fraction alloc]init];
return self;
}
-(void)clear
{
if(accumulator){
accumulator.numerator=0;
accumulator.denominator=0;
}
}
-(Fraction*)performOperation:(char)op
{
Fraction*result;
switch(op){
case‘+’:
result=[operand1 add:operand2];
break;
case‘-’:
result=[operand1 subtract:operand2];
break;
case‘*’:
result=[operand1 multiply:operand2];
break;
case‘/’:
result=[operand1 divide:operand2];
break;
}
accumulator.numerator=result.numerator;
accumulator.denominator=result.denominator;
return accumulator;
}
-(void)dealloc
{
[operand1 release];
[operand2 release];
[accumulator release];
[super dealloc];
}
@end