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());
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.