Re: A question about a few variables in a class
On 8/5/2011 5:31 PM, Chad wrote:
Let's say I have the following class.....
public class ComparableRectangle extends Rectangle implements
Comparable {
public ComparableRectangle(double width, double height) {
super(width, height);
}
public int compareTo(Object o) {
if (getArea()> ((ComparableRectangle)o).getArea())
return 1;
else if (getArea()< ((ComparableRectangle)o).getArea())
return -1;
else
return 0;
}
}
Are 'width' and 'height' data fields in this class? My initial guess
is yes. However, the fact that they are passed to super() makes me
wonder otherwise.
Looking only at the snippet shown, it's impossible to answer
the question. The ComparableRectangle class itself has no members
named width or height. It might (or might not) inherit such
members from Rectangle or from a superclass of Rectangle. All we
can be sure of is (1) Rectangle has a constructor taking two
double arguments, and (2) Rectangle or a Rectangle ancestor has
a getArea() method returning a primitive number of some kind.
We don't actually know what Rectangle is because there are no
import statements to tell us what package it's in. It clearly
cannot be java.awt.Rectangle, which has public width and height
members but which has no getArea() and no suitable constructor.
--
Eric Sosman
esosman@ieee-dot-org.invalid