Part 1: Write a class called Circle.java which has a single field of type double
ID: 3548448 • Letter: P
Question
Part 1: Write a class called Circle.java which has a single field of type double called radius. Circle.java should include the following instance (non-static) methods:
A default (no argument) constructor public Circle()which constructs a (unit) circle of radius 1.
An overloaded constructor public Circle(double newRadius)that accepts a value for the radius. An accessor public double getRadius()which returns the radius of the circle.
A mutator public void setRadius(double newRadius)which accepts a value for the radius. An accessor public double calculateDiameter()which returns the diameter of the circle.
An accessor public double calculateCircumference()which returns the circumference.
An accessor public double calculateArea()which returns the area of the circle.
A public String toString() method which returns a String representation of the circle such as
Explanation / Answer
Hi Please find the below program.
CircleMain.Java
import java.text.DecimalFormat;
import java.util.Scanner;
public class CircleMain {
public static void main(String[] args) {
Circle circle = new Circle();
DecimalFormat df = new DecimalFormat("#.##");
beginProgram();
double radius = inputRadius();
circle.setRadius(radius);
while (radius > 0) {
System.out.println("Here is your new Circle:");
System.out.println(circle.toString());
System.out.println("Diameter: "
+ df.format(circle.calculateDiameter())
+ ", Circumference: "
+ df.format(circle.calculateCircumference()) + ", Area: "
+ df.format(circle.calculateArea()));
System.out.print("Enter a radius (0 to quit):");
radius = inputRadius();
circle.setRadius(radius);
}
closeProgram();
}
static void beginProgram() {
System.out
.println("This program will prompt for the radius of a circle and display the circle's diameter, circumference, and area. The program will repeat until the user chooses to quit.");
}
static void closeProgram() {
System.out.println("Thank you for using the Circle program.");
}
public static double inputRadius() {
double d = 0d;
Scanner sc = new Scanner(System.in);
try {
System.out.print("Enter a radius (0 to quit):");
d = sc.nextDouble();
while (d < 0) {
System.out
.println("The radius must be a positive number; please try again.");
System.out.print("Enter a radius (0 to quit):");
d = sc.nextDouble();
}
} catch (Exception e) {
System.out.println("Not a number; try again.");
inputRadius();
return d;
}
return d;
}
}
Circle.java
import java.text.DecimalFormat;
public class Circle {
double radius;
public Circle() {
this.radius = 1d;
}
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return this.radius;
}
public void setRadius(double newRadius) {
this.radius = newRadius;
}
public double calculateDiameter() {
return 2 * this.getRadius();
}
public double calculateCircumference() {
return 2 * Math.PI * this.getRadius();
}
public double calculateArea() {
return Math.PI * this.getRadius() * this.getRadius();
}
@Override
public String toString() {
DecimalFormat df = new DecimalFormat("#.00");
String radius = df.format(this.getRadius());
return "Radius " + radius;
}
@Override
public boolean equals(Object obj) {
Circle circle = (Circle) obj;
if (this.getRadius() == circle.getRadius())
return true;
else
return false;
}
}
Output:
This program will prompt for the radius of a circle
and display the circle's diameter, circumference, and area.
The program will repeat until the user chooses to quit.
Enter a radius (0 to quit):1
Here is your new Circle:
Radius 1.00
Diameter: 2, Circumference: 6.28, Area: 3.14
Enter a radius (0 to quit):Enter a radius (0 to quit):5.5
Here is your new Circle:
Radius 5.50
Diameter: 11, Circumference: 34.56, Area: 95.03
Enter a radius (0 to quit):Enter a radius (0 to quit):-4
The radius must be a positive number; please try again.
Enter a radius (0 to quit):Hello
Not a number; try again.
Enter a radius (0 to quit):0
Thank you for using the Circle program.
Thanks,
Sri