Java Reference
In-Depth Information
4.5.2
Example of object-oriented design
We design classes that facilitate drawing various shapes in a graphics window —
parallelograms, rhombuses, squares, etc. Later, you can augment these with
classes to draw triangles, right triangles, and other shapes of your choosing.
Get the classes
in this design
from a footnote
on lesson page
4-4.
Class Shape
Class
Shape
will be the superclass of all shape classes —see Fig. 4.9. A
basic property of any shape is its placement in a graphics window, and its place-
ment is determined by the coordinates of the upper left corner of a bounding rec-
tangle for the shape. The constructor has these two values as parameters, and we
provide getter methods for them. We also have method
toString
, which may be
useful when debugging programs that create and use shapes.
The only other method is
drawShape
. This method should never be called,
since instances of
Shape
contain not shapes but only positions of shapes! As we
will see, it is included only so that it can be overridden in subclasses.
In the design of Fig. 4.9, we have written the function bodies with return
statements that return the default value for the return type. This is so that this
class definition is syntactically legal and will compile.
Activity
4-4.2
import
java.awt.*;
/**
A shape at an
(x, y)
coordinate.
*/
public class
Shape {
/**
Constructor: a shape that fits in a bounding rectangle with upper-left corner
(x, y) */
public
Shape(
int
x,
int
y){}
/** =
x-coordinate of the upper-left corner of the bounding rectangle
*/
public int
getX()
{
return
0; }
/** =
y-coordinate of upper-left corner of the bounding rectangle
*/
public int
getY()
{
return
0; }
/** =
a description of this
Shape
, of the form
(
x-coordinate
,
y-coordinate
) */
public
String toString()
{
return
""; }
/**
draw this shape using
Graphics g
--not to be called
*/
public void
drawShape(Graphics g) {}
}
Figure 4.9:
The design of class Shape
Search WWH ::
Custom Search