*****************JAVA********************** Write a class called Fraction, which can be used to store an exact fraction. It must have: - A field to store the numerator - A field to store the denominator - A toString method that returns a neatly formatted String representing the fraction - An equals method that compares itself to another Fraction - An add method that adds itself to another Fraction and returns a new Fraction - Appropriate constructor and accessors as needed Write a program that asks the user to enter the numerators and denominators of two fractions and create corresponding Fraction objects. Check for valid input and a 0 denominator. Then output both Fractions (using your toString method implicitly), whether they are equal, and their sum. Name your main class Hw6pr2 and your file Hw6pr2.java. Submit all .java files Solution import java.util.*; import java.io.*; public class Fraction { static Scanner console = new Scanner(System.in); public static void main(String[] args); private int numerator; private int denominator; System.out.println(\"Enter the denominator\"); System.out.flush(); while(console.hasNext()) { denominator = console.nextInt(); public String toString() { return (numerator + \" / \" + denominator); } public boolean equals(Fraction rightFr) { return(numerator * rightFr.denominator == denominator * rightFr.numerator); } public int compareTo(Fraction rightFr) { return(numerator * rightFr.denominator-denominator * rightFr.numerator); } public Fraction(int num, int deno) throws Exception { numerator = num; if(deno == 0) throw new Exception(\"denominator cannot be zero\"); else denominator = deno; } public Fraction() { numerator = 0; denominator = 1; } public void setFraction(int num, int deno) throws Exception { numerator = num; if(deno == 0) throw new Exception(\"denominator cannot be zero\"); else denominator = deno; } public Fraction add(Fraction rightFr) { Fraction temp = new Fraction(); temp.numerator = numerator * rightFr.denominator + rightFr.numerator * denominator; temp.denominator = denominator * rightFr.denominatior; return temp; } public Fraction multiply(Fraction rightFr) { Fraction temp = new Fraction(); temp.numerator = numerator * rightFr.numerator; temp.denominator = denominator * rightFr.denominator; return temp; } public Fraction subtract(Fraction rightFr) { Fraction temp = new Fraction(); temp.numerator = numerator * rightFr. denominator-rightFr.numerator * denominator; temp.denominator = denominator * rightFr.denominator; retrun temp; } Fraction divide(Fraction rightFr) throws Exception { Fraction temp = new Fraction(); if(rightFr.numerator == 0) throw new Exception(\"Cannot divide by zero\"); else{ temp.numerator = numerator * rightFr.denominator; temp.denominator = rightFr.numerator *denominator; return temp; } System.out.println(\" \"); System.out.println(\" \" +(numerator + denominator)); } }.