public class Fraction { // Data fields (data members) private int num; // private data field private int denom; // private data field // Operators -- methods // constructors public Fraction() { // default constructor num = 0; denom = 1; } public Fraction(int n, int d) {num = n; denom = d;} public Fraction(int n) { // finish this one . . . } // Other methods // Multiply this fraction by argument fraction public Fraction multiply(Fraction frac2) { Fraction fTemp = new Fraction(this.num * frac2.num, this.denom * frac2.denom); fTemp.simplify(); // Reduce result fraction return fTemp; } // Multiply Fraction by integer public Fraction multiply(int n) { Fraction fTemp = new Fraction(); fTemp.setNumerator(num * n); fTemp.setDenominator(denom); fTemp.simplify(); return fTemp; } public void simplify() { // To be completed! // reduce a fraction - e.g., 12/16 should become 3/4 // divide both numerator and denominator by greatest common // divisor } // Find greatest common divisor of n1 and n2 private int gcd(int n1, int n2) { // implement recursively for best results. // return 1 if n1 or n2 is zero. return 1; } // Represent fraction as a string public String toString() { return num + "/" + denom; // return fraction as a string } // complete these methods public Fraction (int n) { . . . } public void setNumerator(int n) {. . . } public void setDenominator(int d) {. . .} public void setFraction(int m, int n) {. . .} public int getNumerator() {. . .} public int getDenominator() {. . .} // insert addition subtraction and division operators. Write 2 versions of // each method - one that has a Fraction argument and one that has a // single integer argument. // insert isZero operator here - returns true for fraction 0/n // insert isOne operator here - returns true if // numerator == denominator // insert equals operator to compare 2 fractions // insert toDouble operator to represent as real number // insert toPercent operator to represent as percentage } // end Fraction