#import <Foundation/Foundation.h>
#import "Fraction.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
Fraction *myFraction=[[Fraction alloc]init];
[myFraction setNumerator:1];
[myFraction setDenominator:3];
//显示分数
NSLog(@"The valuse of myFraction is:");
[myFraction print];
Fraction *aFraction=[[Fraction alloc]init];
Fraction *bFraction=[[Fraction alloc]init];
Fraction *resultFraction;
[aFraction setTo:1 over:4];
[bFraction setTo:1 over:2];
[aFraction print];
NSLog(@"+");
[bFraction print];
NSLog(@"=");
resultFraction=[aFraction add:bFraction];
[resultFraction print];
}
return 0;
}第七章是关于 类的分离接口与实现文件 全章用一个处理分数的例子来讲解,今天练习了,将供码岾出来。首先是:Fraction.h
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
@property int numerator,denominator;
-(void) print;
/*
-(void) setNumerator:(int)n;
-(void) setDenominator:(int)d;
-(int) numerator;
-(int) denominator;
*/
-(void) setTo:(int)n over:(int)d;
-(Fraction *) add:(Fraction *)f;
-(void) reduce;
-(double) convertToNum;
@end
接下来是Fraction.m
#import "Fraction.h"
@implementation Fraction
/************不要再声明实便变量
{
int numerator;
int denominator;
}
**********************************/
@synthesize numerator,denominator;
-(void) print
{
NSLog(@"%i/%i",numerator,denominator);
//NSLog(@"分子%i",numerator);
}
/***********************
-(void) setNumerator:(int)n
{
numerator=n;
}
-(void) setDenominator:(int)d
{
denominator=d;
}
-(int)numerator
{
return numerator;
}
-(int)denominator
{
return denominator;
}
*************************/
-(void) setTo:(int)n over:(int)d
{
numerator=n;
denominator=d;
}
-(Fraction *) add:(Fraction *)f
{
//两个分数相加:a/b+c/d=((a*d)+(b*c))/(b*d)
Fraction *result=[[Fraction alloc]init];
result.numerator=numerator*f.denominator+denominator*f.numerator;
result.denominator=denominator*f.denominator;
[result reduce];
return result;
}
-(void) reduce
{
int u=numerator;
int v=denominator;
int temp;
while (v!=0) {
temp=u%v;
u=v;
v=temp;
}
numerator/=u;
denominator/=u;
}
-(double)convertToNum
{
if (denominator!=0) {
return (double) numerator/denominator;
}
else
return NAN;
}
@endcv最后是测试main.m
本文通过Objective-C编程语言实例,详细介绍了如何定义、初始化、操作分数类,并展示了分数加法运算的过程。

被折叠的 条评论
为什么被折叠?



