toString Methods | Building Blocks Java (original) (raw)
Our printing in the last program was quite stilted because we needed to break a complex number into its real and imaginary parts, print them, and then put it all back together again. Wouldn’t it be nice if we could just write:
System.out.println(u);
instead? It turns out we can. All objects have a toString method which is inherited from the Object class. However the default toString() method isn’t very useful so we want to override it with one of our own creation that handles the conversion to complex numbers. Add the following method to the Complex class:
public String toString() {
if (v >= 0) return (String.valueOf(u) + ” + ” + String.valueOf(v) + “i”);
else return (String.valueOf(u) + ” – ” + String.valueOf(-v) + “i”);
}
You should also modify the ComplexExamples class as follows:
class ComplexExamples {
public static void main (String args[]) {
Complex u, v, z;
u = new Complex(1,2);
System.out.println(”u: ” + u);
v = new Complex(3,-4.5);
System.out.println(”v: ” + v);
// Add u + v;
z=u.Plus(v);
System.out.println(”u + v: ” + z);
// Add v + u;
z=v.Plus(u);
System.out.println(”v + u: ” + z);
z=u.Minus(v);
System.out.println(”u – v: ” + z);
z=v.Minus(u);
System.out.println(”v – u: ” + z);
z=u.Times(v);
System.out.println(”u * v: ” + z);
z=v.Times(u);
System.out.println(”v * u: “+ z);
z=u.DivideBy(v);
System.out.println(”u / v: ” + z);
z=v.DivideBy(u);
System.out.println(”v / u: ” + z);
}
}
That’s about an order of magnitude easier to understand and to write.
This entry was posted on Wednesday, July 29th, 2009 at 9:05 am and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.