我不得不使用外部類的值來運行我的主要方法。我的課外(Circle類)如下:我的TestCircle java代碼運行不正確
import java.text.DecimalFormat;
public class Circle
{ //start class Circle
private double radius; //stores user input for radius
private int x; //stores user input for x
private int y; //stores user input for y
public Circle()
{ //open Circle()
} //close Circle()
public Circle (double radius)
{ //start Circle
setRadius(radius);
} //end Circle(double)
public Circle (int x, int y)
{ //start Circle
setX(x);
setY(y);
} //end Circle(int, int)
public Circle (double radius, int x, int y)
{ //start Circle
setX(x);
setY(y);
if (radius > 0) //makes sure radius has a correct value
{
this.radius=radius; //stores the input radius if it is positive
}
} // end Circle (double, int, int)
public void setRadius(double radius)
{ //start setRadius
if (radius > 0) //stores correct variable input for radius
{
this.radius=radius;
}
} //end setRadius(double)
public void setX(int x)
{ //start setX
setX(x); //stores X (user input) for x
} //end setX(int)
public void setY(int y)
{ //start setY
setY(y); //stores Y (user input) for y
} //end setY(int)
public void setXY(int x, int y)
{ //start setXY
setXY(x,y); //stores values for X and Y
} //end setXY
public double getRadius()
{ //start getRadius
double dVal; //stores the value for radius
dVal=this.radius; //stores the value for radius for the input circle
return dVal; //returns the value for radius
} //end getRadius()
public int getX()
{ //start getX
return x; //returns the value of x
} //end getX()
public int getY()
{ //starts getY
return y; //returns the value of y
} //ends getY
public double area()
{ //start area()
double dArea; //stores the value of dArea
dArea= radius * radius * 3.141599999; //how dArea is calculated
return dArea; //returns the value stored to dArea
} //end area()
public double circumference()
{ //start circumference
double dCircum; //stores the value of dCircumference
dCircum= (2* radius) * 3.1415999999; //how dCircumerence is calculated
return dCircum; //returns the calculated value of dCircumference
} //end circumference()
public String toString()
{ //start toString
DecimalFormat df= new DecimalFormat ("0.000");
double dCircum= circumference();
double dArea= area();
String strStuff;
strStuff= "\nRadius: " +this.radius;
strStuff+= "\nXCoord: " + x;
strStuff+= "\nYCoord: " + y;
strStuff+= "\nArea: " + df.format(dArea);
strStuff+="\nCircumference: " + df.format(dCircum);
strStuff+="\n\n";
return strStuff; //returns the values of the class
} //end toString
}
//end Circle class
以下是我TestCircle類
公共類TestCircle
{ //start TestCircle
public static void main(String[] args)
{ //starts main
Circle c1= new Circle(7,0,14);
double dRad; //stores a value to dRad
dRad= c1.area(); //runs area() for the stored values
} //ends main
} //ends TestCircle
他們都編譯正常,但是當我跑我TestCircle類只是prings這一遍又一遍地「在Circle.setX(Circle.java.44)。我猜這跟我在第44行設置X的地方有關,但我不知道該怎麼辦,請幫助。
不是一個答案裏面,但請 - 寫'Math.PI '而不是'3.141599999'。後者笨拙,實際上不正確。 –