java - 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;
}
解决方案
您的 getter 返回您传入的参数,而不是 setter 存储的值。
作为参数传递的变量中的值是您输入的最后一个值,因此您将始终打印您输入的最后一个值。
从 getter 中删除参数。
public String getName() {
return name;
}
并像调用
boats[i].getName()
推荐阅读
- sftp - SFTP 移动文件不触发事件
- c# - DataCollection 或 DataCollection 中的字段数组或对象数组
- c++ - 如何使用工作线程正确退出 Qt 应用程序?
- javascript - vue + webpack:SyntaxError:字符类中的无效范围
- java - 如何通过消费者
对方法 - java - Java 重复执行任务 - 直到发生超时或满足条件 - 同步执行
- java - 流上的 reduce() 操作似乎正在修改数据源(列表)Stream API Java 8
- css - 样式文本(使用 CSS)以匹配 XD 中的无边框字体
- javascript - React 中的 Google 身份验证
- sql - ORACLE SQL:制作仅从特定日期获取数据的视图