Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Consider the following incomplete Fraction class. The relevant portions of the c

ID: 3682787 • Letter: C

Question

Consider the following incomplete Fraction class. The relevant portions of the class are given below.

Fill in the blank in the class header to make each Fraction object Comparable.
Also, fill in the compareTo method such that fractions are compared according to their double values.

public class Fraction _______________________________________________ {

private long numerator;
private long denominator;
...
public double toDouble() {

return numerator / (double) denominator;
}

public int compareTo(Fraction other) {

// FILL IN

}
}

Explanation / Answer

Solution:

public class Fraction implements Comparable<Fraction> {
   // Don not use primitive type here.Take wrapper classes
   private Long numerator;
   private Long denominator;

   // getter and setter
   public Long getNumerator() {
       return numerator;
   }
   public void setNumerator(Long numerator) {
       this.numerator = numerator;
   }
   public Long getDenominator() {
       return denominator;
   }
   public void setDenominator(Long denominator) {
       this.denominator = denominator;
   }
   public double toDouble() {
       return numerator / (double) denominator;
   }
  
   @Override
   public int compareTo(Fraction other) {
       Fraction frac = (Fraction) other;
       int compare = numerator.compareTo(frac.getNumerator());
       return ((compare == 0)? denominator.compareTo(frac.getDenominator()): compare);
   }
  
   @Override
   public boolean equals(Object obj) {
       if (!(obj instanceof Fraction)) {
           return false;
       }
       Fraction frac = (Fraction) obj;
       return numerator.equals(frac.getNumerator())&& denominator.equals(frac.getDenominator());
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote