// Define a class Fraction: FractionTest.java class Fraction { private int numerator; private int denominator; // Constructor public Fraction() { numerator = 0; denominator = 1; } // constructor allows setting of values for numerator // and denominator when object is created public Fraction(int n, int d) { numerator = n; denominator = d; } // mutator method gets and sets numerator public void setNumerator(int n) { numerator = n; } public int getNumerator() { return numerator; } // mutator method gets and sets denominator public void setDenominator(int d) { denominator = d; } public int getDenominator() { return denominator; } // display method public String displayAsRatio() { return (numerator + "/" + denominator); } public boolean equals(Fraction other) { // Unification to compare if (numerator * other.getDenominator() == denominator * other.getNumerator()) return true; else return false; } } //end fraction class // Define Fraction Test program class FractionTester { public static void main (String[] args) { // Test hard-coded fractions Fraction first = new Fraction(20, 60); Fraction second = new Fraction(25, 75); System.out.println("Test 1: "); System.out.println("First fraction: " + first.displayAsRatio()); System.out.println("Second fraction: " + second.displayAsRatio()); System.out.println("Are fractions equal? " + first.equals(second)); // Use mutator to change values first.setNumerator(-15); first.setDenominator(30); System.out.println("\nTest 2: "); System.out.println("First fraction: " + first.displayAsRatio()); System.out.println("Second fraction: " + second.displayAsRatio()); System.out.println("Are fractions equal? " + first.equals(second)); second.setNumerator(-1); second.setDenominator(2); System.out.println("\nTest 3: "); System.out.println("First fraction: " + first.displayAsRatio()); System.out.println("Second fraction: " + second.displayAsRatio()); System.out.println("Are fractions equal? " + first.equals(second)); } // end main method } // end main class