Fraction 加减乘除 倒数 相反数

设计分数类Fraction,要求实现分数的运算功能,包括:
a、加法,函数名plus;

b、减法,函数名subtract;

c、乘法,函数名multiply;

d、除法,函数名divide;

e、倒数,函数名reciprocal;

f、相反数,函数名opposite;

g、生成输出串,函数名toString。

详细代码实现和测试用例如下,望采纳

public class Fraction {
  private int numerator;   // 分子
  private int denominator; // 分母

  public Fraction(int numerator, int denominator) {
    this.numerator = numerator;
    this.denominator = denominator;
  }

  // 加法
  public Fraction plus(Fraction other) {
    int newNumerator = this.numerator * other.denominator + other.numerator * this.denominator;
    int newDenominator = this.denominator * other.denominator;
    return new Fraction(newNumerator, newDenominator);
  }

  // 减法
  public Fraction subtract(Fraction other) {
    int newNumerator = this.numerator * other.denominator - other.numerator * this.denominator;
    int newDenominator = this.denominator * other.denominator;
    return new Fraction(newNumerator, newDenominator);
  }

  // 乘法
  public Fraction multiply(Fraction other) {
    int newNumerator = this.numerator * other.numerator;
    int newDenominator = this.denominator * other.denominator;
    return new Fraction(newNumerator, newDenominator);
  }

  // 除法
  public Fraction divide(Fraction other) {
    int newNumerator = this.numerator * other.denominator;
    int newDenominator = this.denominator * other.numerator;
    return new Fraction(newNumerator, newDenominator);
  }

  // 倒数
  public Fraction reciprocal() {
    return new Fraction(this.denominator, this.numerator);
  }

  // 相反数
  public Fraction opposite() {
    return new Fraction(-this.numerator, this.denominator);
  }

  // 生成输出串
  public String toString() {
    return String.format("%d/%d", this.numerator, this.denominator);
  }
}

测试用例

Fraction a = new Fraction(1, 2);
Fraction b = new Fraction(3, 4);

System.out.println(a.plus(b));      // 输出:5/4
System.out.println(a.subtract(b));   // 输出:-1/4
System.out.println(a.multiply(b));   // 输出:3/8
System.out.println(a.divide(b));     // 输出:2/3
System.out.println(a.reciprocal());  // 输出:2/1
System.out.println(a.opposite());    // 输出:-1/2