• ,

level06.lesson11.home02

Здравствуйте!
Заранее благодарю за помощь!
Я считаю, что:
условия выполенны
код скомпилировован и запцушен без ошибок
вывод тоже верен
но…
Помогите, люди добрые)
public class Cat {
    public Cat() {
    }
    public static ArrayList<Cat> cats = new ArrayList<Cat>();

    public static void main(String[] args) {
        for (int i = 0; i <10; i++) {
            cats.add(new Cat());
        }
        printCats();
    }

    public static void printCats() {
       System.out.print(cats.size());
    }
}

15 комментариев

web-maker
Какое условие задачи?
Wujko
1. В классе Cat добавь public статическую переменную cats (ArrayList).
2. Пусть при каждом создании кота (нового объекта Cat) в переменную cats добавляется этот новый кот. Создать 10 объектов Cat.
3. Метод printCats должен выводить всех котов на экран. Нужно использовать переменную cats.
P.S.
Спасибо, что откликнулись!
web-maker
У Вас метод printCats выводит размер коллекции cats, а не всех котов из коллекции. + При создании кота у Вас ничего не происходит, конструктор класса Cat пустой.
Wujko
Понял, спасибо, сейчас перепишу.
sanchev
  • sanchev
  • +1
  • Комментарий отредактирован 2015-03-21 01:10:18 пользователем sanchev
1 В конструкторе надо добавлять котов в список, а в мейне просто вызов конструктора
2 Выводить не размер списка, а все его элементы
Wujko
Понял. Спасибо, сейчас постараюсь реализовать.
ss-20
по поводу 2 Выводить не размер списка, а все его элементы — верно.
а добавлять котов в список в мейне — по условию задачи.
Wujko
Всем огромное спасибо, разобрался и переписал.
Конструктор:
cats.add(this);

и метод printCats:
for (int i = 0; i < cats.size(); i++)
            System.out.println(cats.get(i));

Надо было внимательней читать.))
evgeniy_s
Я извиняюсь за глупость, как в таком случае будет выглядеть вызов конструктора?
for (int i = 0; i < 10; i++) {
Cat cat = new Cat();
}
Sygurny
не могу понять почему в цикле вывода нельзя оставить условие i < 10? я бы тогда со второго раза задачу сдал… в условии то ничего не сказано про это
SD_Kpuca
В условии сказано, что бы твой метод printCats выводил всех котов, а не 10 штук.
Philatelist
Не могу понять в чем проблема, у меня или сервера.
Решая следующую задачу в Intelij IDEA, выдает ошибку компиляции на сервере. Java 1.7 (если что).

«Статические коты
1. В классе Cat добавь public статическую переменную cats (ArrayList).
2. Пусть при каждом создании кота (нового объекта Cat) в переменную cats
добавляется этот новый кот. Создать 10 объектов Cat.
3. Метод printCats должен выводить всех котов на экран. Нужно использовать переменную cats.»

public class Cat {
    public Cat() {
    }
    public  static ArrayList<Cat> cats = new ArrayList<Cat>();

    public static void main(String[] args) {
        
        for (int i=0;i<10;i++){
            cats.add(new Cat());
        }
        printCats();
    }

    public static void printCats() {
        
        for (int i=0;i<cats.size();i++) {
            System.out.println(cats.get(i));
        }
    }
}


При этом сама Intelij IDEA выдает в консоли следующий результат:
com.javarush.test.level06.lesson11.home02.Cat@1c4a1bda
com.javarush.test.level06.lesson11.home02.Cat@456a93b8
com.javarush.test.level06.lesson11.home02.Cat@580838a2
com.javarush.test.level06.lesson11.home02.Cat@3be40d5
com.javarush.test.level06.lesson11.home02.Cat@6221a86a
com.javarush.test.level06.lesson11.home02.Cat@fb7f97b
com.javarush.test.level06.lesson11.home02.Cat@775c024c
com.javarush.test.level06.lesson11.home02.Cat@399b08cc
com.javarush.test.level06.lesson11.home02.Cat@715ea69f
com.javarush.test.level06.lesson11.home02.Cat@7d0d4ade

т.е. все коты на месте…
В чем может быть проблема, или я где-то ошибся в задаче?
п.с. котов вручную я тоже создавал, ошибка та же…
LiS92
То же самое и у меня, видно придется создавать отдельный вопрос
hubert
Вам лень даже почитать пару комментов выше…
Wujko
for (int i=0;i<10;i++) — тут ошибка. Еще раз прочтите условие задачи, но теперь ВНИМАТЕЛЬНО!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.