С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Bac9_aJlkaLLl
4 / 4 / 2
Регистрация: 15.05.2017
Сообщений: 61

Геттер возвращает одно знаечение

17.02.2018, 11:41. Показов 694. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
В чем суть моего обращения:
Есть список объектов, при их создании все переменные записываются в экземпляры класса и кладутся в список этих объектов. Но вот потом начинается проблема: либо я намудрил с геттером либо с конструктором. При обращении к элементу списка и вызова у него геттера, он возвращает значение последнего элемента.

Собственно сам класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class isBot {
 
    //переменные отвечающие за клетку
    private static String whatEat;
    private static int health;
    private static int x;
    private static int y;
 
    //конструктор
    public isBot(String whatEat, int x, int y) {
 
        this.whatEat = whatEat;
        this.x = x;
        this.y = y;
 
        successCreateBot();
    }
    private static void successCreateBot() {
        System.out.println ("Вы создали бота с координатами: (" + x + ";" + y +"). Он кушает: " + whatEat);
    }
 
    //сеттеры
    public void setWhatEat(String whatEat) { this.whatEat = whatEat; }
    public void setHealth(int health) {this.health = health; }
    public void setX(int x) { this.x = x; }
    public void setY(int y) { this.y = y; }
 
    //геттеры
    public String getWhatEat() { return this.whatEat; }
    public int getHealth() {return this.health; }
    public int getX() { return this.x; }
    public int getY() { return this.y; }
}
И мэйн:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
 
        ArrayList<isBot> botList = new ArrayList <>();
        Random rnd = new Random();
        for (int i = 0; i < 10; i++) {
            botList.add(new isBot("trava", rnd.nextInt(100) + 1, rnd.nextInt(100) + 1));
            botList.add(new isBot("myaso", rnd.nextInt(100) + 1, rnd.nextInt(100) + 1));
        }
 
        System.out.println(botList.get(10).getX());
        System.out.println(botList.get(15).getX());
 
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2018, 11:41
Ответы с готовыми решениями:

Функция возвращает одно и то же значение
Доброго времени! Вопрос собственно, почему функция всегда возвращает массив из первой ветки? private int LoadFigure(int figure,...

Функция возвращает одно, получаю другое
В коде оставлю коментарии где что происходит хотелось бы мнения из-за чего это? public static function...

Выборка из БД возвращает только одно значение
Нужно вытянуть из таблицы параметры, а вытаскивает только 1 значение.Нужна помошь:Вот код:Где натупил подскажите: public static...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
17.02.2018, 12:01
Bac9_aJlkaLLl, у тебя поле x объявлено как static, оно не принадлежит объекту, т.е. общее для всех. Потому и показывает последнее записанное в него значение

Добавлено через 35 секунд
Статики поубирай и будет тебе счастье
1
 Аватар для Bac9_aJlkaLLl
4 / 4 / 2
Регистрация: 15.05.2017
Сообщений: 61
17.02.2018, 12:03  [ТС]
Большая благодарность от меня! +1 держи )
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
18.02.2018, 12:57
Цитата Сообщение от Bac9_aJlkaLLl Посмотреть сообщение
isBot
название класса сбивает с толку (для анализа кода требуется больше время). Обычно, так называют методы которые проверяют что-либо. Например этот, исходя из правил, действительно ли аргумент является ботом?
0
 Аватар для Bac9_aJlkaLLl
4 / 4 / 2
Регистрация: 15.05.2017
Сообщений: 61
19.02.2018, 13:28  [ТС]
название класса сбивает с толку (для анализа кода требуется больше время). Обычно, так называют методы которые проверяют что-либо. Например этот, исходя из правил, действительно ли аргумент является ботом?
Да, спасибо за замечание. В курсе общепринятых норм, но я не думал, что кто-то будет смотреть мой код, а лично мне кажется, что так название класса выглядит куда лучше, чем просто Bot.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2018, 13:28
Помогаю со студенческими работами здесь

mysql_fetch_row возвращает одно значение вместо массива
$query=&quot;SELECT b FROM c&quot;; $a1=mysql_query($query,$this-&gt;link) or die (&quot;Error:&quot;.mysql_error()); $a=...

Метод с random всегда возвращает одно значение
Есть метод, который принимает массив строк, и должен вернуть рандомную строку. static class Class { public static string...

Функция при вызове возвращает одно и то же значение
Здравствуйте, столкнулся со странным багом: При вызове одной и той же функции несколько раз, которая случайно генерирует математическое...

Метод постоянно возвращает одно и тоже значение
Питаюсь реализовать чат на сокетах с использованием JavaFX. По неизвестной мне причине метод public static String getMsg() (который я...

Почему string.match возвращает только одно совпадение ?
'ZzZ'.match(new RegExp(/zz/,'gi'))


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru