public class Cat {
public static ArrayList<Cat> cats = new ArrayList<Cat>();
//напишите тут ваш код
public Cat() {
cats.add(new Cat());
}
public static void main(String[] args) {
for (int i=1; i<=10; i++){
Cat cat = new Cat();}
printCats();
}
public static void printCats() {
System.out.println(cats.toString());//напишите тут ваш код
}
}
И ещё вопрос по строке ниже:
public static ArrayList<Cat> cats = new ArrayList<Cat>(); - Почему иногда вот тут пишут тип элементов, а иногда нет(я про <Cat>)? new ArrayList<Cat>Сергей
7 уровень
StackOverflowError. Подскажите в чем проблема
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRAExpert
20 марта 2021, 16:58
Добавляете в список нового кота, что приводит к вызову этого конструктора и так по кругу пока стек не заполнится и вы не получите ошибку
0
Сергей
20 марта 2021, 17:01
Не очень понятно) у меня же цикл создаёт 10 объектов, соответственно 10 раз должен вызываться конструктор и добавлять объекты в массив
0
KIRAExpert
20 марта 2021, 17:02
Но в конструкторе вы написали new Cat() - что приводит к срабатыванию конструктора
0
Сергей
20 марта 2021, 17:06
получается, только вручную забивать туда объекты?
0
KIRAExpert
20 марта 2021, 17:06решение
Просто перенесите логику добавления кода в список из конструктора в цикл, тогда у вас будет 10 объектов типа Cat
Конструктор должен остаться пустым в таком случае
+2
Сергей
20 марта 2021, 17:10
точно, благодарю)
0