Define a class called Fraction . This class is used to represent a ratio of two integers. Include mutator methods that allow the user to set the numerator and the denominator. Also include a method that returns the value of numerator divided by denominator as a double . Include an additional method that outputs the value of the fraction reduced to lowest terms (e.g., instead of outputting 20/60, the method should output 1/3). This will require finding the greatest common divisor for the numerator and denominator, then dividing both by that number. Embed your class in a test program.
Program:
// Fraction.java
public class Fraction
{
private int numerator;
private int denominator;
public Fraction()
{
numerator = 0;
denominator = 1;
}
public Fraction(int newNumerator)
{
numerator = newNumerator;
denominator = 1;
}
public Fraction(int newNumerator, int newDenominator)
{
setNumerator(newNumerator);
setDenominator(newDenominator);
}
public void setNumerator(int newNumerator)
{
numerator = newNumerator;
}
public void setDenominator(int newDenominator)
{
if(newDenominator != 0)
denominator = newDenominator;
else
denominator = 1;
}
public int getNumerator()
{
return numerator;
}
public int getDenominator()
{
return denominator;
}
public double getFractionValue()
{
return (double)numerator / denominator;
}
public String toString()
{
reduceFraction();
return numerator + "/" + denominator;
}
public void printFraction()
{
reduceFraction();
System.out.println(numerator + "/" + denominator);
}
private void reduceFraction()
{
int n = numerator;
int d = denominator;
while (n != 0)
{
int temp = n;
n = d % n;
d = temp;
}
numerator = numerator / d;
denominator = denominator / d;
}
}
// FractionDemo.java
public class FractionDemo
{
public static void main(String[] args)
{
Fraction frac1 = new Fraction(20, 60);
Fraction frac2 = new Fraction(180, 120);
Fraction frac3 = new Fraction(35, 49);
System.out.println("Fraction #1: " + frac1);
System.out.println("Fraction #2: " + frac2);
System.out.println("Fraction #3: " + frac3);
}
}
Output:
Fraction #1: 1/3
Fraction #2: 3/2
Fraction #3: 5/7