Java Reference
In-Depth Information
*10.13
(
Geometry: the
MyRectangle2D
class
) Define the
MyRectangle2D
class that
contains:
Two
double
data fields named
x
and
y
that specify the center of the rectangle
with
get
and
set
methods. (Assume that the rectangle sides are parallel to
x-
or
y-
axes.)
■
The data fields
width
and
height
with
get
and
set
methods.
■
A no-arg constructor that creates a default rectangle with (
0
,
0
) for (
x
,
y
) and
1
for both
width
and
height
.
■
A constructor that creates a rectangle with the specified
x
,
y
,
width
, and
height
.
■
A method
getArea()
that returns the area of the rectangle.
■
A method
getPerimeter()
that returns the perimeter of the rectangle.
■
A method
contains(double x, double y)
that returns
true
if the speci-
fied point (
x
,
y
) is inside this rectangle (see Figure 10.18a).
■
A method
contains(MyRectangle2D r)
that returns
true
if the specified
rectangle is inside this rectangle (see Figure 10.18b).
■
A method
overlaps(MyRectangle2D r)
that returns
true
if the specified
rectangle overlaps with this rectangle (see Figure 10.18c).
■
p
(a)
(b)
(c)
(d)
F
IGURE
10.18
A point is inside the rectangle. (b) A rectangle is inside another rectangle.
(c) A rectangle overlaps another rectangle. (d) Points are enclosed inside a rectangle.
Draw the UML diagram for the class and then implement the class. Write a test
program that creates a
MyRectangle2D
object
r1
(
new MyRectangle2D(2,
2, 5.5, 4.9)
), displays its area and perimeter, and displays the result of
r1.contains(3, 3)
,
r1.contains(new MyRectangle2D(4, 5, 10.5,
3.2))
, and
r1.overlaps(new MyRectangle2D(3, 5, 2.3, 5.4))
.
*10.14
(
The
MyDate
class
) Design a class named
MyDate
. The class contains:
■
The data fields
year
,
month
, and
day
that represent a date.
month
is 0-based,
i.e.,
0
is for January.
■
A no-arg constructor that creates a
MyDate
object for the current date.
■
A constructor that constructs a
MyDate
object with a specified elapsed time
since midnight, January 1, 1970, in milliseconds.
■
A constructor that constructs a
MyDate
object with the specified year, month,
and day.
■
Three
get
methods for the data fields
year
,
month
, and
day
, respectively.
■
A method named
setDate(long elapsedTime)
that sets a new date for the
object using the elapsed time.
Draw the UML diagram for the class and then implement the class. Write a test
program that creates two
MyDate
objects (using
new MyDate()
and
new
MyDate(34355555133101L)
) and displays their year, month, and day.
(
Hint
: The first two constructors will extract the year, month, and day from the elapsed
time. For example, if the elapsed time is
561555550000
milliseconds, the year is