我是編程新手,所以如果我問一個可以很容易修復的問題,請原諒我。我的程序有一個主測試器類。當我將它發送給我的RegularPolygon類時,它將它發送給錯誤的構造函數。我有兩個構造函數。 1沒有perameters我的測試人員是錯誤的構造函數
public RegularPolygon()
{
myNumSides = 5;
mySideLength = 30;
}//end default constructor
和我的第二,與perameters。
public RegularPolygon(int numSides, double sideLength)
{
myNumSides = numSides;
mySideLength = sideLength;
}// end constructor
在我的測試類,我有以下兩行:
RegularPolygon shape = new RegularPolygon(numSides, sideLength);
shape.menu();
即numSides和sideLength被宣佈和更早版本在測試類初始化。
所以我想要發生的是,測試程序類將numSides和sideLength發送到第二個構造函數並在該類中使用它。但是它只使用默認的構造函數,因此會破壞整個程序的其餘部分。有人能幫助我嗎?
對於那些誰希望看到更多的我的代碼:在這裏你去
public double vertexAngle()
{
System.out.println("The vertex angle method: " + myNumSides);// prints out 5
System.out.println("The vertex angle method: " + mySideLength); // prints out 30
double vertexAngle;
vertexAngle = ((myNumSides - 2.0)/myNumSides) * 180.0;
return vertexAngle;
}//end method vertexAngle
public void menu()
{
System.out.println(myNumSides); // prints out what the user puts in
System.out.println(mySideLength); // prints out what the user puts in
goToGraphic();
calcR(myNumSides, mySideLength);
calcr(myNumSides, mySideLength);
print();
}// end menu
這是我整個測試類:
public static void main(String[] arg)
{
int numSides;
double sideLength;
Scanner keyboard = new Scanner(System.in);
System.out.println("Welcome to the Regular Polygon Program!");
System.out.println();
System.out.print("Enter the number of sides of the polygon ==> ");
numSides = keyboard.nextInt();
System.out.println();
System.out.print("Enter the side length of each side ==> ");
sideLength = keyboard.nextDouble();
System.out.println();
RegularPolygon shape = new RegularPolygon(numSides, sideLength);
shape.menu();
}//end main
對於測試來說,我把它即numSides 4 sideLength 100.
如果你真的使用'new RegularPolygon(numSides,sideLength);',它絕對不會將它發送給第一個構造函數。 –
是的,你爲什麼認爲它確實到了好的?你可以給所有的班級代碼,也許你在其他地方犯了一個錯誤。 –
你在做什麼讓你確信第一個構造函數正在被使用?你爲什麼不添加一個調試器來遍歷它,或者在你的構造函數中做'System.out.println(「構造函數A」);' – nhgrif