Java数组值被覆盖

时间:2019-01-05 20:30:23

标签: java

我刚开始使用OOP,我正在尝试创建一个程序,该程序创建一个数组来存储三种不同类型的信息,即名称,双精度和Int。

由于某种原因,当我运行该程序并输入信息时,它没有正确存储。例如,如果我在迭代1中输入“ James”,22.5、4,则在迭代2中输入“ John”,23.66、8,则打印该数组,john,23.66和8打印两次。本质上,我希望数组中的每个i迭代都存储一组不同的值,但是我似乎无法弄清楚为什么它不起作用。

*编辑以反映答案

for(int i=0; i<boats.length; i++) {
    System.out.printf("Name: " + boats[i].getName(name) + "  " +
                       "Age: " + boats[i].getLength(length) + "  " +
                       "Length: " + boats[i].getRating(rating) + "\n\n");
}
in.close();

**班级代码

Public Class file
    public String getName(String name) {
        return name;
    }

    public double getLength(double length) {
        return length;
    }

    public int getRating(int rating) {
        return rating;
    }

1 个答案:

答案 0 :(得分:5)

您的getter返回的是您要传递的参数,而不是setter存储的值。

作为参数传递的变量中的值是您输入的最后一个值,因此您将始终打印输入的最后一个值。

从吸气剂中删除参数。

public String getName() {
    return name;
}

并像

那样调用
boats[i].getName()