Статические коты

  • 10
  • Недоступна
Статический кот — всем котам кот. Поэтому в этой задаче в классе Cat добавляем статическую переменную cats. Пусть при каждом создании кота (нового объекта Cat) в переменную cats добавляется этот новый кот. Нам нужно создать 10 объектов Cat, а затем метод printCats должен выводить всех котов на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (449)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Katerina Bykova у меня пока лапки в но я исправлюсь
позавчера, 09:51
Я одна туплю над пунктом "1. В классе Cat добавь публичную статическую переменную cats (ArrayList<Cat>)"? Что здесь просят сделать?
Alleviata 7 уровень, Киев
18 января, 16:49
Ребята, о ArrayList вкратце. В него вы можете сохранить некоторое число объектов одно вида, хоть int, String, хоть Cat. ArrayList удобнее обычного массива тем, что его можно создавать не зная заранее его размер, и по ходу дела добавлять туда элементы и обращаться к ним. Основные методы ArrayList (вызываются через точку после название самого ArrayList): название.add(element); - добавляем в ArrayList новый элемент, только того типа, которые изначально прописан в ArrayList<ВОТ ЗДЕСЬ> название.size(); - возвращает нам целое число - количество элементов в ArrayList название.get(целое число); - возвращает нам тот объект, который в ArrayList сохранен в ячейке под номером, переданным нами в параметрах название.set(целое число, element) - меняет объект, сохраненный в ячейке под номером, который мы передаем первым параметром, на объект, который мы передаем вторым параметром Для этой задачи нам нужен метод .add и .size()
Cat cat = new Cat(); // создаем объект в теле цикла
cats.add(cat); // сохраняем объект в наш ArrayList
for (int i=0; i<cats.size();i++ ){ // так мы запускаем цикл столько раз, сколько элементов в ArrayList
            System.out.println(cats.get(i)); // с помощью метода .get обращаемся к объекту, сохраненному под номером i
        }
Распостраненная ошибка - инициализация ArrayList если запишете его в конструкторе так:
ArrayList<Cat> cats = new ArrayList<Cat>();
- он будет создаваться каждый раз, когда создается новый кот, и кот каждый раз будет сохранен в новый массив. А это ошибка. Так в конструкторе не делайте. Не зря он в статической переменной должен быть.
Gaziz 10 уровень, Уфа
9 января, 02:57
Два часа чтения документации и методов. Часа два пытался добавлять котов в лист прям в конструкторе котов))) Не надо так как я, надо просто прям при создании, даже имен не надо)))
Денис Кочетов Technical Lead в СП62
8 января, 20:06
Почему-то эта задача появляется ДО изучения класса ArrayList. Это следующая тема. Вы можете оставить эту задачу и прочитать курс дальше, затем вернутся, как это сделал я, тогда будет проще. На эту задачу потратил около часа. Как оказалось, нужно было просто вчитываться в условие (которое слева от задачи, более подробные пункты). Первым циклом создаём котов и сразу заносим в список:
cats.add(new Cat());
Вторым циклом выводим. Очень простая задача, как оказалось.
Дмитрий 7 уровень, Москва
5 января, 19:47
Я до последнего момента думал, что котам надо присвоить имена, но ссылки устроили валидатор... И поэтому присваивал им персональные имена и пытался их передать аргументами конструктору). В условии задачи нет необходимости создания объектов циклом, но без него не проходит валидацию.
Alexander 11 уровень
5 января, 17:32
Задача: решена Способ решения : 2 цикла, бред в консоли, ничего не понимающий я
Рустам 11 уровень
24 декабря 2020, 02:52
Было бы интереснее если бы конструктор сам добавлял объекты в массив
Sergey Bizinow DevOops в Devexperts
18 ноября 2020, 17:52
Хм, что странно, раньше у таких задач была лычка "Future" тут ее не хватает, есть конечно прямая отсылка, но все же ....
Evgeny Vdovin 8 уровень
15 ноября 2020, 19:56
Для выполнения всем идти сюда Класс ArrayList Ну конечно пришлось покопаться и почитать что такое ArrayList, пришлось как-то написать этот код. Он как-то прошел валидацию... Но сказать что я особо что-то понял без внятной теории до этого - нельзя.
Anna 8 уровень
22 декабря 2020, 18:56
Начинается со лов: "В прошлых лекциях мы подробно разобрали такую структуру данных как массив..." Любопытно любопытно)0
Dmitry 27 уровень, Хабаровск
11 ноября 2020, 01:30
Было бы веселее добавление котов cats.add(this) в конструктор включить, но увы "Метод main должен добавить всех созданных котов в переменную cats".