Значения массива Java переопределяются

Я только начинаю работать с ООП и пытаюсь создать программу, которая создает массив для хранения трех различных типов информации: имя, двойное значение и Int.

По какой-то причине, когда я запускаю программу и ввожу информацию, она не сохраняется должным образом. Если я ввожу, например, «Джеймс», 22,5, 4 на итерации 1, затем «Джон», 23,66, 8 на итерации 2, а затем распечатываю массив, 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;
    }

Прочтите ericlippert.com/2014/03/05/how-to-debug-small-programs, чтобы узнать, как отлаживать код

Code-Apprentice 05.01.2019 21:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваши геттеры возвращают параметр, который вы передаете, а не значение, сохраненное установщиком.

Значения в переменных, которые вы передаете в качестве параметров, являются последними введенными вами значениями, поэтому вы всегда будете печатать последние введенные вами значения.

Удалите параметр из получателя.

public String getName() {
    return name;
}

И призывать как

boats[i].getName()

Спасибо! Это отлично работает, и ваше объяснение помогло мне понять, что я сделал не так.

Luke Byrne 05.01.2019 22:07

Другие вопросы по теме