Java 从我的分数类调用reduce方法并应用于我的FractionMath

Java 从我的分数类调用reduce方法并应用于我的FractionMath,java,Java,这是我的分数课。数学是可行的,但我想减少分数。注意:这在EclipseSDKJuno中 public class Fraction { private int n, d; public Fraction(int num, int denum){ n = num; d = denum; } public int getNumerator(){ return n; } public void setNumerator(int num){ n = num; } public

这是我的分数课。数学是可行的,但我想减少分数。注意:这在EclipseSDKJuno中

public class Fraction {
private int n, d;
public Fraction(int num, int denum){
    n = num;
    d = denum;
}

public int getNumerator(){
return n;
}
public void setNumerator(int num){
    n = num;
}
public int getDenumerator(){
    return d;
}
public void setDenumerator(int denum){
    d = denum;
}
**public void reduce(){
    int gcf = 1, smaller;
    if (n < d){
        smaller = n;
    }
    else{
        smaller = d;
    }
    for (int i = 1;i <= smaller; i++){
        if(n % i == 0 && d % i ==0){
            gcf = i;
        }
    }
    n = n/gcf;
    d = d/gcf;
    System.out.print(n + "/" + d);
}**
}

网络上有很多解决方案。也许可以试试这个。也许只需在构造函数末尾调用
reduce()
?2.所有这些操作都应该作为
Fraction
的方法来实现,例如检查
biginger
import java.util.*;

public class FractionMath {
public static void main(String[] args){
    Fraction f1, f2;
    Fraction ans = new Fraction(0,0);
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter the numerator; then denumerator:\n");
    f1 = new Fraction(sc.nextInt(), sc.nextInt());
    System.out.print("Enter another numerator; and denumerator:\n");
    f2 = new Fraction(sc.nextInt(), sc.nextInt());
    System.out.print("Add (1)\nSubtract (2)\nMultiply (3)\nDivide (4)\n");
    int choice = sc.nextInt();
    if (choice == 1){
         if (f1.getDenumerator() == f2.getDenumerator()){
             ans.setNumerator(f1.getNumerator() + f2.getNumerator());
             ans.setDenumerator(f1.getDenumerator());
         }
         else{
             ans.setNumerator(f1.getNumerator() * f2.getDenumerator() + f2.getNumerator() * f1.getDenumerator());
             ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
         }
    }
    else if (choice == 2){
        if (f1.getDenumerator() == f2.getDenumerator()){
             ans.setNumerator(f1.getNumerator() - f2.getNumerator());
             ans.setDenumerator(f1.getDenumerator());
         }
         else{
             ans.setNumerator(f1.getNumerator() * f2.getDenumerator() - f2.getNumerator() * f1.getDenumerator());
             ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
         }
    }
    else if (choice == 3){
        ans.setNumerator(f1.getNumerator() * f2.getNumerator());
        ans.setDenumerator(f1.getDenumerator() * f2.getDenumerator());
    }
    else if (choice == 4){
        ans.setNumerator(f1.getNumerator() * f2.getDenumerator());
        ans.setDenumerator(f1.getDenumerator() * f2.getNumerator());
    }
}
}