-2
私はクラスCircleClassを作成しようとしていますが、私は頭がおかしくなるいくつかのエラーがあります。エラーを見つけるのに手伝ってもらえますか?コンストラクタ、アクセサ、およびミューテータを使用してサークルのクラスを作成する
import java.util.*;
public final class CircleClass
{
//class fields
private int diameter;
private double area;
/*Default Constructor
*IMPORT none
*EXPORT address of new CircleClass object
*ASSERTION area 0 diameter 0 is default
*/
public CircleClass()
{
area = 0.0;
diameter = 0;
}
/*copy constructor
*IMPORT inCircle (CircleClass)
*EXPORT address of new CircleClass object
*ASSERTION creates an object with an identical object state as the import
*/
public CircleClass(CircleClass inCircleClass)
{
area = inCircleClass.getArea();
diameter = inCircleClass.getDiameter();
}
/*alternate constructor
*IMPORT inDiameter (integer)
*EXPORT address of new Circle object
*ASSERTION creates an object if imports are valid or fails otherwise
*/
public CircleClass (int inDiameter)
{
if (validateNumber (inDiameter))
{
diameter = inDiameter;
area = calcArea (diameter);
}
else
{
throw new IllegalArgumentException("invalid value");
}
}
/*SUB setArea
*IMPORT area (real)
*EXPORT none
*ASSERTION sets the area if import is valid
*/
public void setArea (double area)
{
if (area >= 0.0)
{
area = inArea;
}
else
{
throw new IllegalArgumentException("invalid area value");
}
}
/*SUB setDiameter
*IMPORT inDiameter (integer)
*EXPORT none
*ASSERTION sets diater if valid
*/
public void setDiameter (int inDiameter)
{
if (validateNumber(inDiameter))
{
diameter = inDiameter;
}
else
{
throw new IllegalArgumentException("invalid diameter");
}
}
//ACCESSORS
public int getDiameter()
{
return diameter;
}
public double getArea()
{
return area;
}
//SUB equals
//IMPORT diameter
//EXPORT same (boolean)
//ASSERTION same = true if diameter is same as inDiameter
public boolean equals (int diameter)
{
boolean same = false;
if (diameter == inDiameter)
{
same = true;
}
return same;
}
//SUB equals
//IMPORT inObject
//EXPORT same (booleana)
public boolean equals (Object inObject)
{
boolean same = false;
if (inObject instanceof CircleClass)
{
CircleClass inCircle = (CircleClass) inObject;
same = (diameter == inCircle.getDiameter);
}
}
//SUB clone
//IMPORT none
//EXPORT cloneCircleClass (Object)
//ASSERTION returns cloned object of current object
public Object clone()
{
CircleClass cloneCircleClass;
cloneCircleClass = new CircleClass (diameter, area);
return cloneCircleClass;
}
//PRIVATE SUB validateNumber
//IMPORT inDiameter
//EXPORT valid
//ASSERTION number should be gtreater or equal to 0
private boolean validateNumber (int inDiameter)
{
return (inDiameter >= 0);
}
//SUB calcArea
//IMPORT inDiameter
//EXPORT area
//ASSERTION calculates area
private boolean calcArea (int diameter)
{
double radius, area;
radius = (double)diameter/2.0;
area = Math.PI * radius * radius;
return area;
}
}
私が手にエラーがシンボルエラーに
を見つける
をdoubleに変換し、circleClass
イム新しいづくりのクラスが見つかりませ適しコンストラクタはので、私は何のideadを持っていないオブジェクトにないことブールカントです最後のエラーの意味ヘルプのおかげで
1. 'boolean calcArea'、' area'、 'double'を返しますが、メソッドは' boolean'リターンを期待しています。あなたのパラメータは 'inArea'ではなく' area'と呼ばれます。 'diameter'と' inDiameter'と同じです。また、 'getDiameter'はメソッドですが、あなたはそれをアクセス可能な変数のように呼び出しています。 'getDiameter()'というパラメタを忘れてしまった。 3. CircleClass(int、double)コンストラクタは存在しないので、 'clone'メソッドはそこで新しいインスタンスを作成して返すことができません。作成するか、既存のものを使用してください。 'equals(Object inObject)'は 'return'を期待している間に' return'を持っていません。 – SomeJavaGuy