所以,我正在製作一個程序,計算出給定7個速度和6個軌跡角度的距離。給定執行必要操作的公式,我必須將結果存儲在一個二維數組中,並以整潔有序的方式打印結果。構建對象混亂陣列
我對我的程序的某個特定部分無法工作產生困惑。對我來說這似乎很好,但是輸出結果並不是我期望的,因爲它是隨機的,不合邏輯的。錯誤是從代碼中給出的輸出結果爲「Catapult @ xxxxx ....」,其中「x」代表隨機的一系列字母,數字或字符。我不確定他們來自哪裏,爲什麼,所以我想要一個解釋,以及如何解決這個地雷問題。源代碼如下:
static final int ROWS = 7;
static final int COLS = 6;
public static void main(String[] args)
{
double[] angles = {25.0, 30.0, 35.0, 40.0, 45.0, 50.0};
double[] rads = new double[COLS];
for(int i = 0; i < COLS; i++)
{
rads[i] = Math.toRadians(angles[i]);
}
double[] speeds = {20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0};
Catapult[][] projectile = new Catapult[ROWS][COLS];
for(int a = 0; a < ROWS; a++)
{
for(int b = 0; b < COLS; b++)
{
projectile[a][b] = new Catapult(speeds[a], rads[b]);
}
}
如果你是第二個for循環projectile[a][b] = new Catapult(speeds[a], rads[b]);
後鍵入System.out.print(projectile[a][b] + " ");
,那麼這將導致前面描述的錯誤。
您需要在'Catapult'中重寫'toString'。 –
謝謝你的回答,但你能解釋一下嗎?我不確定你在'Catapult'中重寫'toString'是什麼意思。 – Tetramental
這是一條評論,但你從'Object'獲得了默認的'toString'。請參閱Java教程中的[覆蓋和隱藏](https://docs.oracle.com/javase/tutorial/java/IandI/override.html)。 –