/** * Fraction class * * This class models a fraction with an integer * in both the numerator and denominator. * It does not reduce the fraction. * It does not notice if the denominator is zero. * * @author Erica Eddy * @version December 2010 */ public class Fraction { // instance variables private int numerator; // non-reduced numerator private int denominator; // non-reduced denominator /** * Default Constructor for objects of class Fraction * Calls the other constructor using this() */ public Fraction() { this(0,1); } // Constructor which initialized the instance variables // from the parameter list. // Also uses "this" to refer to the current object. public Fraction(int numerator, int denominator) { this.numerator = numerator; this.denominator = denominator; } public void setNumerator(int numerator) { this.numerator = numerator; } public void setDenominator(int denominator) { this.denominator = denominator; } public double toDouble() { return (double)numerator / denominator; } // toString() // Builds a String of instance variable information // and returns it. public String toString() { String fracText = numerator + "/" + denominator; return fracText; } // check if two Fractions are the same // Must compare each instance variable of the current // object to the instance variables found in the parameter public boolean equals(Fraction f2) { boolean retValue = false; if (numerator == f2.numerator && denominator == f2.denominator) retValue = true; return retValue; } // plus #1 public Fraction plus (Fraction frac2) { int newNumerator = numerator * frac2.denominator + frac2.numerator * denominator; int newDenominator = denominator * frac2.denominator; Fraction sum = new Fraction(newNumerator,newDenominator); return sum; } // plus #2 public void plus (Fraction frac2, Fraction result) { result.numerator = numerator * frac2.denominator + frac2.numerator * denominator; result.denominator = denominator * frac2.denominator; } public void badPlus(Fraction frac3, Fraction result) { result = plus(frac3); } public static void main(String [] args) { Fraction half = new Fraction(1,2); Fraction quarter = new Fraction(1,4); Fraction threeFourths = half.plus(quarter); Fraction oneSixth = new Fraction(1,6); Fraction twoThirds = new Fraction(); half.badPlus(oneSixth, twoThirds); System.out.println("twoThirds = " + twoThirds); System.out.println(half.toString() + " = " + half.toDouble()); System.out.println(quarter + " = " + quarter.toDouble()); } }