1
Student Name: __________________
Class and Section __________________
Total Points (15 pts) __________________
Due: August 31, 2016 before the class
Project: The Circle2D Class
CSCI 1302 Advanced Programming Principles
Armstrong Atlantic State University
Problem Description:
Define the Circle2D class that contains:
Two double data fields named x and y that specify the
center of the circle with get methods.
A data field radius with a get method.
A noarg constructor that creates a default circle
with (0, 0) for (x, y) and 1 for radius.
A method contains(double x, double y) that returns
true if the specified point (x, y) is inside this
circle. See Figure 10.14(a).
A method contains(Circle2D circle) that returns true
if the specified circle is inside this circle. See
Figure 10.14(b).
Figure
(a) A point is inside the circle. (b) A circle is
inside another circle. (c) A circle overlaps another
circle.
Draw the UML diagram for the class. Implement the
class. Write a test program that creates a Circle2D
object c1 (new Circle2D(2, 2, 5.5)), displays its area
2
Design:
Draw the UML class diagram here
Coding: (Copy and Paste Source Code here. Format your code using Courier 10pts)
public class Exercise10_11 {
3
Submit the following items:
1. Print this Word file and Submit to me before the class on the due day.
2. Compile, Run, and Submit to LiveLab (you must submit the program regardless
whether it complete or incomplete, correct or incorrect)
4
Solution Code:
public class Exercise10_11 {
}
public Circle2D(double x, double y, double radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
}
public double getPerimeter() {
return 2 * radius * Math.PI;
}
public double getArea() {
5
return radius * radius * Math.PI;
}
}
public boolean overlaps(Circle2D circle) {
// Two circles overlap if the distance between the two centers
// are less than or equal to this.radius + circle.radius
// MyPoint is defined in Exercise9_4
return distance(this.x, this.y, circle.x, circle.y)
<= radius + circle.radius;
}