OC第二讲成员变量可见度与方法

来源:互联网 发布:用homebrew打开mysql 编辑:程序博客网 时间:2024/05/04 14:09

第一题  分数类(Fraction)

1、成员变量:分子、分母

2、方法:

    (1)初始化方法

    (2)分子、分母的赋值、取值方法

    (3)打印分数

    (4)约分

    (5)加、减、乘、除四个运算方法,返回分数对象

3、主函数中创建分数对象,测试加、减、乘、除。


提示:加减乘除运算只有一个Fraction类型的参数,有一个Fraction类型的返回值。


创建Fraction(分数)类

//  Fraction.h  文件

#import <Foundation/Foundation.h>@interface Fraction : NSObject{    int _numerator;    // 分子    int _denominator;  // 分母}///初始化- (id)initWithNumerator:(int)numerator denominator:(int)denominator;///赋值- (void)setNumerator:(int)numerator;- (void)setDenominator:(int)denominator;///取值- (int)numerator;- (int)denominator;///打印- (void)print;///约分- (void)reduction;///加- (Fraction *)add:(Fraction *)fraction;///减- (Fraction *)reduce:(Fraction *)fraction;///乘- (Fraction *)multiply:(Fraction *)fraction;///除- (Fraction *)divide:(Fraction *)fraction;@end


//  Fraction.m 文件

//  实现 Fraction.h 中的方法

#import "Fraction.h"@implementation Fraction///初始化- (id)initWithNumerator:(int)numerator denominator:(int)denominator{    _numerator = numerator;    _denominator = denominator;    return self;}///赋值- (void)setNumerator:(int)numerator{    _numerator = numerator;}- (void)setDenominator:(int)denominator{    _denominator = denominator;}///取值- (int)numerator{    return _numerator;}- (int)denominator{    return _denominator;}///打印分数- (void)print{    NSLog(@"%d / %d", _numerator, _denominator);}///约分- (void)reduction{    int x = _numerator, y = _denominator;    while (x % y != 0) {        int a = x % y;        x = y;        y = a;    }    _numerator /= y;    _denominator /= y;}///加- (Fraction *)add:(Fraction *)fraction{    Fraction *_result = [[Fraction alloc] init];        _result->_numerator = ([self numerator] * [fraction denominator]) + ([self denominator] * [fraction numerator]);    _result->_denominator = [self denominator] * [fraction denominator];    [_result reduction];        return _result;}///减- (Fraction *)reduce:(Fraction *)fraction{    Fraction *_result = [[Fraction alloc] init];    _result->_numerator = ([self numerator] * [fraction denominator]) - ([self denominator] * [fraction numerator]);    _result->_denominator = [self denominator] * [fraction denominator];    [_result reduction];        return _result;}///乘- (Fraction *)multiply:(Fraction *)fraction{    Fraction *_result = [[Fraction alloc] init];    _result->_numerator = [self numerator] * [fraction numerator];    _result->_denominator = [self denominator] * [fraction denominator];    [_result reduction];        return _result;}///除- (Fraction *)divide:(Fraction *)fraction{    Fraction *_result = [[Fraction alloc] init];    _result->_numerator = [self numerator] * [fraction denominator];    _result->_denominator = [self denominator] * [fraction numerator];    [_result reduction];    return _result;}@end

//   主函数mian.m

#import <Foundation/Foundation.h>#import "Fraction.h"int main(int argc, const char * argv[]){    @autoreleasepool {        // 创建Fraction的对象叫a1        Fraction *a1 = [[Fraction alloc] initWithNumerator:2 denominator:3];                // 创建Fraction的对象叫a2        Fraction *a2 = [[Fraction alloc] initWithNumerator:1 denominator:4];                // 打印对象a1, a2        [a1 print];        [a2 print];                // 创建fraction类temp1保存a1加a2的值        Fraction *temp1 = [a1 add:a2];        // 打印对象temp1        [temp1 print];            // 创建fraction类temp1保存a1减a2的值        Fraction *temp2 = [a1 reduce:a2];        // 打印对象temp2        [temp2 print];                // 创建fraction类temp1保存a1乘a2的值        Fraction *temp3 = [a1 multiply:a2];        // 打印对象temp3        [temp3 print];                // 创建fraction类temp1保存a1除a2的值        Fraction *temp4 = [a1 divide:a2];        // 打印对象temp4        [temp4 print];    }    return 0;}




0 0
原创粉丝点击