我正在上学的在线计算机科学课程,我在路上遇到了一个障碍,经过两天我仍然无法弄清楚,我已经转向社区了。
我写了一段代码,我需要打印弹射距离。我已将这些对象放在ArrayList中,并为catapult实例开发了一个类文件。我希望我的代码在行的开头打印距离列表和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编程语言的新手!
答案 0 :(得分:3)
你不应该在你的情况下使用静态变量,因为它在类的所有对象中都是常见的(Catapult)