Computer Science 523
Advanced Programming
Summer 2014, The College of Saint Rose
DoublePair BlueJ Project
Click here to download a BlueJ project for DoublePair.
DoublePair Source Code
The Java source code for DoublePair is below. Click on a file name to download it.
/*
* Example DoublePair: a class that holds a pair of double values
*
* Jim Teresco, The College of Saint Rose, CSC 523, Summer 2014
*
* $Id: DoublePair.java 2377 2014-06-10 03:12:01Z terescoj $
*/
public class DoublePair {
// we'll need, of course, two double values as instance variables
private double first, second;
// our constructor for a new DoublePair
public DoublePair(double first, double second) {
this.first = first;
this.second = second;
}
// accessors
public double getFirst() {
return first;
}
public double getSecond() {
return second;
}
// mutators, including ones to set first, second, or both
public void setFirst(double newFirst) {
first = newFirst;
}
public void setSecond(double newSecond) {
second = newSecond;
}
public void setValues(double newFirst, double newSecond) {
first = newFirst;
second = newSecond;
}
// we should have a toString method - in this case, we'll return
// a String to make this look like a coordinate pair, seems as
// good as anything and likely to be useful in many contexts.
public String toString() {
return "(" + first + ", " + second + ")";
}
// it's also good to define an equals method for any general purpose
// class -- in this case, we'll say a DoublePair is equal to another
// only if first and second are both precisely equal
public boolean equals(Object o) {
DoublePair other = (DoublePair)o;
return (other.first == first) && (other.second == second);
}
// a common way to test a class is to include a main method
// in the class that tests its methods. So let's.
public static void main(String args[]) {
// we'll create a few DoublePair objects and print them out
DoublePair a = new DoublePair(4.3, 9.1);
DoublePair b = new DoublePair(0, 0);
System.out.println("a: " + a);
System.out.println("b: " + b);
// try out the accessors
System.out.println("a.getFirst(): " + a.getFirst());
System.out.println("a.getSecond(): " + a.getSecond());
System.out.println("b.getFirst(): " + b.getFirst());
System.out.println("b.getSecond(): " + b.getSecond());
// are they equal?
System.out.println("a.equals(b): " + a.equals(b));
// mutators!
a.setFirst(17.0);
a.setSecond(-23.5);
b.setValues(17.0, -23.5);
System.out.println("a: " + a);
System.out.println("b: " + b);
// are they equal now? Hope so!
System.out.println("a.equals(b): " + a.equals(b));
// uncomment the following to see what happens if we send
// the wrong type of object to the equals method
//System.out.println("a.equals(\"hi there\"): " + a.equals("high there"));
}
}