©2008 Felleisen, Proulx, et. al.
We will focus on geometric shapes - a circle, a square, and a shape that is a combination of two shapes, the top and the bottom one. Recall the data definition as given by the class diagram:
+-------+ | Shape |<--------------------------+ +-------+ | +-------+ | | | / \ | --- | | | --------------------------------------- | | | | | +--------------+ +--------------+ +--------------+ | | Square | | Circle | | Combo | | +--------------+ +--------------+ +--------------+ | +-| Posn nw | +-| Posn center | | Shape top |----+ | | int size | | | int radius | | Shape bottom |----+ | | IColor color | | | IColor color | +--------------+ | +-------------+ | +--------------+ +----+ +-----------+ | | v v +-------+ | Posn | +-------+ | int x | | int y | +-------+
Design the method totalArea
that computes the total
area of a shape. For
the shape that consists of two components add the areas - as if you
were measuring how much paint is needed to paint all the components.
You will need to use math functions, such as square root. The
following example shows how you can use the math function, and how to
test double
s for equality. (You can only make sure they are
different only within some given tolerance.)