HOME | Overview | Syllabus | Instructor | Lectures | Laboratories | Readings | Assignments | Resources | Other Links
CS 1713 Lecture 12: More Practice on Classes and Their Interactions
September 27, 1999

In this lecture we will continue with buttons and work with the Vendomatic Button for individual project 1. We will also work some more on the Fraction class:

public class Fraction {
    private int myNumerator;
    private int myDenominator;
    private boolean myIsValid;

    //constructor
    public Fraction (int num, int den) {
        myNumerator = num;
        myDenominator = den;
        if (den==0)
           myIsValid = false;
        else
           myIsValid = true;
    }

    // accessor methods
    public int GetNumerator() {
        return myNumerator;
    }

    public int GetDenominator() {
        return myDenominator;
    }

    public double GetDecimalEquivalent() {
        if (myIsValid)
            return ((double)myNumerator)/myDenominator;
        else
            return Math.NaN;      // Not a number.
    }

    public boolean IsValid() {
        return myIsValid;
    }

    //modifier methods
    public void AddFraction(Fraction f) {
        if (f.IsValid() && IsValid()) {
          int n = myNumerator*f.GetDenominator() +
                  myDenominator*f.GetNumerator();
          int d = myDenominator*f.GetDenominator();
          myNumerator = n;
          myDenominator = d;
        } else
          myIsValid = false;
    }

    public void DivideFraction(Fraction f) {
                                    // Your code goes here
    }

    public void MultiplyFraction(Fraction f) {
                                    // Your code goes here
    }

    public void SubtractFaction(Fraction f) {
                                   // Your code goes here
    }

    // other methods
    public void PrintFraction() {
        if (myIsValid)
           System.out.println(myNumerator + "/" + myDenominator);
        else
           System.out.println("Not a Number (NaN)");
    }
}
  • Main test program:
    public class FractionMain {
    
        /**
         * Constructor.
         */  
        public FractionMain () {
        }
    
        public static void main(String args[]) {
            Fraction f1 = new Fraction(3, 4);
            f1.PrintFraction();
            System.out.println("Numerator is " + f1.GetNumerator());
            System.out.println("Denominator is " + f1.GetDenominator());
            double t = f1.GetDecimalEquivalent();
            System.out.println("Decimal is " + t);
            Fraction f2 = new Fraction(15,17);
            f1.AddFraction(f2);
            f1.PrintFraction();
            f2.PrintFraction();
                                      // put some more tests here
        }
    }
    
    


    Objective: Get a clearer picture of how classes interact.
    Last revision: September 27, 1999 at 9:30 pm