Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Circle program errors

 
Dianne Calhoun
Greenhorn
Posts: 29
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm also working on a circle program, and have gotten the error down to just three errors. Please look at my code and the error and see if you can help me with what I need to do to fix it. Thanks for you help.
Here are the instructions:
Write Circle class that has only 2 static methods, area
and perimeter. Create TestCircle class with main method to test
Circle class. Use the Math.PI constant to calculate the
area and perimeter.
The Circle class has the following methods:
/**
* Class to calculate area and perimeter of circle.
*/
public class Circle {
/** Calculate area of circle.
* @param radius The radius of circle.
*/
public static double area(double radius);
/** Calculate perimeter of circle.
* @param radius The radius of circle.
*/
public static double perimeter(double radius);
}
______________________End of Instructions
End Circle.java
End TestCircle.java
Here are the errors that I'm getting.
C:\myjava\assignment2\problem4>javac Circle.java
Circle.java:17: variable area might not have been initialized
double area = area;
^
Circle.java:18: variable perimeter might not have been initialized
double perimeter = perimeter;
^
Circle.java:19: variable radius might not have been initialized
double radius = radius;
^
3 errors

------------------

[This message has been edited by Dianne Calhoun (edited September 30, 2001).]
 
Marilyn de Queiroz
Sheriff
Posts: 9059
12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

These need to be initialized to constants. It seems that you're initializing each variable to itself. What's the point of that?
 
Dianne Calhoun
Greenhorn
Posts: 29
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Okay, so I think I got my constants initialized right now, but my program is not giving me the right answer, so maybe I'm not getting what what it is I need to put into the constant area right. Here is my changed Circle.java code

Here is the output
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\myjava>cd assignment2
C:\myjava\assignment2>cd problem4
C:\myjava\assignment2\problem4>javac TestCircle.java
C:\myjava\assignment2\problem4>java TestCircle
radius = 0.0
perimeter = 14.0
area = 11.0
C:\myjava\assignment2\problem4>java TestCircle
radius = 0.0
perimeter = 14.0
area = 11.0
C:\myjava\assignment2\problem4>
End of out put
My TestCircle.java code has not changed from what I already posted. Can you please help me figure out what I'm doing wrong to have the answer come out incorrectly.

------------------
Thanks, Dianne
 
Martin Rennix
Ranch Hand
Posts: 34
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dianne,
You are being overly complicated! The assignment says Circle should have only 2 static methods, area() and perimeter(). Why has your class got more? These are the only methods your class needs. You don't need any constructors as you will not be creating any Circle objects.
So your calls from TestCircle would be:
<pre>
double radius = 5.0;
System.out.println("area = " + Circle.area(radius));
System.out.println("perimiter = " + Circle.perimeter(radius));
</pre>
In Circle.java all you need is:
<pre>
public static double area(double r)
{
return Math.PI*r*r;
}
public static double perimeter(double r)
{
return 2*Math.PI*r;
}
</pre>
The thing to remember is that static methods can be called without an object being created. You just put the class name in front of the method.
Hope that helps,
Martin
 
Dianne Calhoun
Greenhorn
Posts: 29
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
yes it does,
------------------
Thanks, Dianne
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic