Program: The Circle2D class Problem Description: Define the Circle2D class that
ID: 3698820 • Letter: P
Question
Program: The Circle2D class 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 no-arg constructor that creates a default circle with (0, 0) for (x, y) and 1 for radius. • A constructor that creates a circle with the specified x, y, and radius. • A method getArea() that returns the area of the circle. • A method getPerimeter() that returns the perimeter of the circle. • 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). • A method overlaps(Circle2D circle) that returns true if the specified circle overlaps with this circle. See the figure below. (a) (b) (c) Figure 10.14 (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 and perimeter, and displays the result of c1.contains(3, 3), c1.contains(new Circle2D(4, 5, 10.5)), and c1.overlaps(new Circle2D(3, 5, 2.3)).
Explanation / Answer
Circle2D.java
public class Circle2D {
//Declaring instance variables
private double x;
private double y;
private double radius;
//Zero argumented constructor
public Circle2D() {
this.x = 0;
this.y = 0;
this.radius = 1.0;
}
//Parameterized constructor
public Circle2D(double x, double y, double radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
// getters and setters
public double getX() {
return this.x;
}
public double getY() {
return this.y;
}
//This method will calculate the radius of the circle
public double getRadius() {
return this.radius;
}
//This method will calculate the perimeter of the circle
public double getPerimeter() {
return 2 * Math.PI * this.radius;
}
//This method will calculate the area of the circle
public double getArea() {
return Math.PI * (this.radius * this.radius);
}
public boolean contains(double x, double y) {
double d = Math.sqrt(Math.pow((x - this.x), 2)
+ Math.pow((y - this.y), 2));
if (d < this.radius)
return true;
else
return false;
}
public boolean contains(Circle2D circle) {
double d = Math.sqrt(Math.pow((circle.x - this.x), 2)
+ Math.pow((circle.y - this.y), 2));
if (d + circle.radius < this.radius)
return true;
else
return false;
}
public boolean overlaps(Circle2D circle) {
double d = Math.sqrt(Math.pow((circle.x - this.x), 2)
+ Math.pow((circle.y - this.y), 2));
if (d <= circle.radius + this.radius)
return true;
else
return false;
}
}
_________________
TestCircle2D.java
public class TestCircle2D {
public static void main(String arg[])
{
//Creating an instance of Circle2D class
Circle2D c1 = new Circle2D(2, 2, 5.5);
//Displaying the output
System.out.println("Area: " + c1.getArea() + " sq units");
System.out.println("Perimeter: " + c1.getPerimeter() + " units");
System.out.println("c1.contains(new Circle2D(3,3)): "+c1.contains(3, 3));
System.out.println("c1.contains(new Circle2D(4, 5, 10.5)): " + c1.contains(new Circle2D(4, 5, 10.5)));
System.out.println("c1.overlaps(new Circle2D(3, 5, 2.3)): " + c1.overlaps(new Circle2D(3, 5, 2.3)));
}
}
___________________
Output:
Area: 95.03317777109125 sq units
Perimeter: 34.55751918948772 units
c1.contains(new Circle2D(3,3)): true
c1.contains(new Circle2D(4, 5, 10.5)): false
c1.overlaps(new Circle2D(3, 5, 2.3)): true
____________Thank You
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.