Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a java RationalNumber class that will represent a fraction. I need to writ

ID: 639737 • Letter: W

Question

Write a java RationalNumber class that will represent a fraction. I need to write a "method add which receives a RationalNumber, adds it to this RationalNumber, and returns the result." I have written everything needed in the class except this method and would appreciate help. **How would I implement the add method to my Mixed number class also?

public class RationalNumber {
   private int numerator;
   private int denominator;
  
   /**
   *
   * @param numerator
   * @param denominator
   */
   public RationalNumber(int numerator, int denominator) {
       setNumerator(numerator);
       setDenominator(denominator);
   }
  
   /**
   * Copy Constructor
   *
   * @param other
   */
   public RationalNumber(RationalNumber other) {
       setNumerator(other.numerator);
       setDenominator(other.denominator);
   }
   /**
   * Deep Copy
   *
   * @return
   */
   public RationalNumber copy() {
       return new RationalNumber(numerator,denominator);
   }
   /**
   *
   * @param numerator
   * @param denominator
   */
   public void setRationalNumber(int numerator,int denominator) {
       setNumerator(numerator);
       setDenominator(denominator);
   }

   /**
   * @return the numerator
   */
   public int getNumerator() {
       return numerator;
   }

   /**
   * @return the denominator
   */
   public int getDenominator() {
       return denominator;
   }

   /**
   * @param numerator the numerator to set
   */
   public void setNumerator(int newNumerator) {
       numerator = newNumerator;
   }

   /**
   * @param denominator the denominator to set
   */
   public void setDenominator(int newDenominator) {
       if(newDenominator < 1) {
           denominator = 1;
       } else
       denominator = newDenominator;
   }

   /* (non-Javadoc)
   * @see java.lang.Object#toString()
   */
   @Override
   public String toString() {
       return numerator +"/"+ denominator;
   }

   /* (non-Javadoc)
   * @see java.lang.Object#hashCode()
   */
   @Override
   public int hashCode() {
       final int prime = 31;
       int result = 1;
       result = prime * result + denominator;
       result = prime * result + numerator;
       return result;
   }

   /* (non-Javadoc)
   * @see java.lang.Object#equals(java.lang.Object)
   */
   @Override
   public boolean equals(Object obj) {
       if (this == obj)
           return true;
       if (obj == null)
           return false;
       if (getClass() != obj.getClass())
           return false;
       RationalNumber other = (RationalNumber) obj;
       if (denominator != other.denominator)
           return false;
       if (numerator != other.numerator)
           return false;
       return true;
   }
  
  
  
  
  

}

public class MixedNumber {
   private int integer;
   private RationalNumber number;
  
   /**
   *
   * @param integer
   * @param number
   */
   public MixedNumber(int integer, RationalNumber number){
       this.integer = integer;
       this.number = number.copy();
   }
   /**
   * Copy Constructor
   *
   * @param other
   */
   public MixedNumber(MixedNumber other) {
       this.integer = other.integer;
       this.number = other.number.copy();
   }
   /**
   * Deep Copy
   *
   * @return
   */
   public MixedNumber copy() {
       return new MixedNumber(integer,number);
   }
   /**
   * @return the integer
   */
   public int getInteger() {
       return integer;
   }
   /**
   * @param integer the integer to set
   */
   public void setInteger(int integer) {
       this.integer = integer;
   }
   /**
   * @return the number
   */
   public RationalNumber getNumber() {
       return number.copy();
   }
   /**
   * @param number the number to set
   */
   public void setNumber(RationalNumber number) {
       this.number = number.copy();
   }
   /* (non-Javadoc)
   * @see java.lang.Object#hashCode()
   */
   @Override
   public int hashCode() {
       final int prime = 31;
       int result = 1;
       result = prime * result + integer;
       result = prime * result + ((number == null) ? 0 : number.hashCode());
       return result;
   }
   /* (non-Javadoc)
   * @see java.lang.Object#equals(java.lang.Object)
   */
   @Override
   public boolean equals(Object obj) {
       if (this == obj)
           return true;
       if (obj == null)
           return false;
       if (getClass() != obj.getClass())
           return false;
       MixedNumber other = (MixedNumber) obj;
       if (integer != other.integer)
           return false;
       if (number == null) {
           if (other.number != null)
               return false;
       } else if (!number.equals(other.number))
           return false;
       return true;
   }
   /* (non-Javadoc)
   * @see java.lang.Object#toString()
   */
   @Override
   public String toString() {
       return number.toString() + integer;
   }
   

Explanation / Answer

Here you go :)

comment if you have any doubts


public class RationalNumber {
   private int numerator;
   private int denominator;

   /**
   *
   * @param numerator
   * @param denominator
   */
   public RationalNumber(int numerator, int denominator) {
       setNumerator(numerator);
       setDenominator(denominator);
   }

   /**
   * Copy Constructor
   *
   * @param other
   */
   public RationalNumber(RationalNumber other) {
       setNumerator(other.numerator);
       setDenominator(other.denominator);
   }

   /**
   * Deep Copy
   *
   * @return
   */
   public RationalNumber copy() {
       return new RationalNumber(numerator, denominator);
   }

   /**
   *
   * @param numerator
   * @param denominator
   */
   public void setRationalNumber(int numerator, int denominator) {
       setNumerator(numerator);
       setDenominator(denominator);
   }

   /**
   * @return the numerator
   */
   public int getNumerator() {
       return numerator;
   }

   /**
   * @return the denominator
   */
   public int getDenominator() {
       return denominator;
   }

   /**
   * @param numerator
   * the numerator to set
   */
   public void setNumerator(int newNumerator) {
       numerator = newNumerator;
   }

   /**
   * @param denominator
   * the denominator to set
   */
   public void setDenominator(int newDenominator) {
       if (newDenominator < 1) {
           denominator = 1;
       } else
           denominator = newDenominator;
   }

   /*
   * (non-Javadoc)
   *
   * @see java.lang.Object#toString()
   */
   @Override
   public String toString() {
       return numerator + "/" + denominator;
   }

   /*
   * (non-Javadoc)
   *
   * @see java.lang.Object#hashCode()
   */
   @Override
   public int hashCode() {
       final int prime = 31;
       int result = 1;
       result = prime * result + denominator;
       result = prime * result + numerator;
       return result;
   }

   /*
   * (non-Javadoc)
   *
   * @see java.lang.Object#equals(java.lang.Object)
   */
   @Override
   public boolean equals(Object obj) {
       if (this == obj)
           return true;
       if (obj == null)
           return false;
       if (getClass() != obj.getClass())
           return false;
       RationalNumber other = (RationalNumber) obj;
       if (denominator != other.denominator)
           return false;
       if (numerator != other.numerator)
           return false;
       return true;
   }

   public RationalNumber add(RationalNumber number) {
       int newNumerator = this.numerator * number.denominator
               + this.denominator * number.denominator;
       int newDenominator = this.denominator * number.denominator;
       int gcm = gcm(newNumerator,newDenominator);
       RationalNumber result = new RationalNumber((newNumerator / gcm), (newDenominator / gcm));
       return result;
   }
   public int gcm(int a,int b) {
   return b == 0 ? a : gcm(b, a % b);
   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote