I’m making a small program that asks the user for the radius of a circle and then outputs the radius, diameter, area, and circumference of the circle in java. I was asked to use a final double to declare the number pi, and I need to use that later in the code to calculate values. I’m having issues with declaring/using the variable and I’m not sure what I’m doing wrong.
I get this error when running the code:
Main.java :
import java.util.Scanner; class Main { public static void main(String[] args) { final double Pi = 3.14159; Scanner keyboard = new Scanner(System.in); System.out.println("What is the radius of the circle? "); double radius = keyboard.nextDouble(); Circle circle1 = new Circle(radius); System.out.println("For a circle with diameter of "+circle1.getDiameter()); System.out.print(", a radius of "+circle1.getRadius()); // Calling the public method that prints the results circle1.results(); }
Circle.java :
import java.lang.Math; final double pi = 3.14159; class Circle{ double radius = 0.0; public Circle (){ radius = 0.0; } Circle(double r){ radius = r; } public double getRadius(){ return radius; } public double getDiameter(){ return radius*2; } private double circumference(){ return 2*pi*radius; } private double area(){ return pi*(radius*radius); } public void results(){ System.out.println("The circumcerence is: "+ circumference() ); System.out.println("The area is: "+ area() ); } }
Advertisement
Answer
It’s a typo,final double pi = 3.14159;
need to be declared inside Circle
and final double Pi = 3.14159;
is never used in Main
import java.lang.Math; class Circle{ double radius = 0.0; final double pi = 3.14159; public Circle (){ radius = 0.0; } Circle(double r){ radius = r; } public double getRadius(){ return radius; } public double getDiameter(){ return radius*2; } private double circumference(){ return 2*pi*radius; } private double area(){ return pi*(radius*radius); } public void results(){ System.out.println("The circumcerence is: "+ circumference() ); System.out.println("The area is: "+ area() ); } }