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>