本篇博文 将 继续 使用 Fraction这类物件。在这篇博文当中 我 要编写 一项措施,用 这项措施 将 两个Fraction类型的物件所代表的比例 相加。我 先 将 这项措施 命名为 Add:。我 可以这样 说明 这项措施:
其中 (Fraction *) 表明 Add:这项措施 附带的参数 属于 Fraction类型的物件。而 参数fractionToAdd 则用来 存储 其中一个需要相加的比例。如果 需要相加的两个比例 分别 是 fractionOne 和 fractionTwo,那么 我 只需要 对 物件FractionOne 采取 Add:这项措施,并且 将 物件fractionTwo 附带为 参数:
两个比例 相加过后,分子 存储 在物件fractionOne的个体变量numerator当中,分母 存储 在物件fractionOne的个体变量denominator当中。
小学老师 曾经 教过,将 a/b 和 c/d 相加,结果 等于 (ad+bc)/(bd)。所以 我 必须 根据 这个原理 来编写 Add:这项措施。下面 就是 整个程序了:
文件Fraction.h:
文件Fraction.m
文件main.m
在这个程序中 我 是这样 编写Add:这项措施的:
在主程序main()当中,我 对 物件fractionOne 采取了 Add:这项措施,并且 附带 物件fractionTwo 作为 参数:
于是 物件fractionTwo 就会被 存储 在变量fractionToAdd当中。然后 fractionToAdd.numerator 和 fractionToAdd.denominator 分别 代表 第二个比例的分子 和 分母。
则是 将 第一个比例的分子 和 第二个比例的分母的积 与 第一个比例的分母 和 第二个比例的分子的积 相加,再 把 结果 存储 在物件fractionOne的个体变量numerator当中 作为 两个比例相加结果的分子。
是 将 第一个比例的分母 和 第二个比例的分母的积 作为两个比例相加结果的分母 存储 在物件fractionOne的个体变量denominator当中。
运行 这个程序 会得到 这样的结果: