Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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