所以,我正在制作一个程序来计算给定七个速度和六个轨迹角度的距离。考虑到进行必要的42次操作的公式,我必须将结果存储在一个二维数组中,并以整齐有序的方式打印结果。
我对为什么程序的某个部分不起作用感到困惑。这对我来说似乎没问题,但输出并不是我所期待的,因为它是随机和不合逻辑的。错误是代码给出的输出,导致“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循环中在System.out.print(projectile[a][b] + " ");
之后键入projectile[a][b] = new Catapult(speeds[a], rads[b]);
,则会导致前面描述的错误。
答案 0 :(得分:0)
你可以试试这个:
class Catapult {
@Override
public String toString() {
// Do here what you want to print
return "Catapult{}";
}
}
修改强>
public String toString() 返回对象的字符串表示形式。通常,toString方法返回一个“文本表示”此对象的字符串。结果应该是一个简洁但信息丰富的表示,便于人们阅读。建议所有子类都重写此方法。 类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于值的字符串: getClass()。getName()+'@'+ Integer.toHexString(hashCode()) 返回: 对象的字符串表示。