[英]ArrayList in Java only prints the last object in the List
我正在上學校的在線計算機科學課程,遇到了一個顛簸,兩天后我仍然不明白,我轉向了社區。
我已經編寫了一段代碼,需要打印彈射器的距離。 我將這些對象放在ArrayList中,並為彈射器實例開發了一個類文件。 我希望我的代碼在行的開頭打印距離和MPH的列表(您可以在下面的源文件中看到此列表,並提供我想要的樣子的示例)。 這是我到目前為止開發的代碼:
Catapult.java
public class Catapult {
static double speed, angle, MPS, Rad, R;
Catapult(double launchSpeed, double launchAngle) {
angle = launchAngle;
speed = launchSpeed;
public void convMPHtoMPS() {
MPS = speed * 0.44704;
}
public void convDegToRad() {
Rad = Math.toRadians(angle);
}
public void calcDistance() {
R = (Math.pow(MPS, 2)*Math.sin(2*Rad))/(Math.pow(9.8, 2));
}
public void convMtoFt() {
R = R * 3.28084;
}
public double getMPH() {
return speed;
}
public double getAngle() {
return angle;
}
public double getMetersPerSecond() {
return MPS;
}
public double getRadians() {
return Rad;
}
public double getDistance() {
return R;
}
}
CatapultTester.java
public static void calcData() {
int mph = 25;
for (int i = 0; i < 7; i++) {
int deg = 25;
for (int j = 0; j < 6; j++) {
CP.add(new Catapult(mph, deg));
//System.out.println(mph);
//System.out.println(deg);
deg += 5;
}
mph += 5;
}
System.out.println(CP.size());
Catapult data;
for (int index = 0; index < CP.size(); index++) {
data = CP.get(index);
data.convMPHtoMPS();
data.convDegToRad();
data.calcDistance();
data.convMtoFt();
//System.out.println(data.getMPH());
//System.out.println(data.getDistance());
}
presentData();
}
public static void presentData() {
Catapult data;
for (int index = 0; index < CP.size(); index++) {
data = CP.get(index);
System.out.printf("%1f", data.getMPH());
for (int j = 0; j < 6; j++) {
System.out.printf("%4.2f", data.getDistance());
}
}
}
預期產量
MPH 25 deg 30 deg 35 deg 40 deg 45 deg 50 deg
25 distance distance distance distance distance distance
30 distance distance distance distance distance distance
...
距離是Catapult.java中聲明的公式
R = (Math.pow(MPS, 2)*Math.sin(2*Rad))/Math.pow(9.8)/2));
實際輸出:
MPH 25 deg 30 deg 35 deg 40 deg 45 deg 50 deg
55 20.34 20.34 20.34 20.34 20.34 20.34
55 20.34 20.34 20.34 20.34 20.34 20.34
55 20.34 20.34 20.34 20.34 20.34 20.34
...
謝謝大家的幫助,對於任何語法錯誤或代碼混淆,我深表歉意。 我是Java編程語言的新手!
您不應該在您的情況下使用靜態變量,因為它將在該類的所有對象(彈射器)中通用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.