Собираем семейство

  • 10
  • Недоступна
Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), дети (ArrayList Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (262)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Колян Мельников9 уровень, Минск
воскресенье, 22:10
Со второй попытки только потому, что прописал в классе Human переменные через private, хотя простая проверка выполнялась.
Светлана10 уровень
15 августа, 10:42
Непонятно, почему валидатор не принял вывод объектов через метод toString класса ArrayList. Требований выводить каждый объект с новой строки не было.
omat_kisat11 уровень, MIPS Assembly
14 августа, 15:23
У детей дети – Collections.emptyList() ну так, на всякий случай.
almariel110 уровень, Москва
13 августа, 13:04
Пока самая мучительная задача из всех - убито несколько дней, на работе встала работа, но я ее выстрадала... Вроде даже без запретных лайфхаков. toString() не трогала, конструктор один (String, boolean, int), дополнительные ArrayListы не плодила (хотя попробовала и через них - не пошло), только один для объединения объектов и вывода на экран в цикле. Про Arrays.asList(), каюсь, подсмотрела и не поняла до конца, зачем превращать объекты в конечный массив, а конечный массив - в список, почему нельзя напрямую ArrayList <Humans> заполнить, типы ведь вроде совпадают...
Alex V. Mel9 уровень
10 августа, 14:56
Я создал объекты в соответствующих списках(дедушки/бабушки, родители, дети). Всё нормально выводится на экран. Создатель задачи хотел чтобы мы прямо для каждого объекта создавали переменные, т. е. 9 переменных типа Human? UPD. Нет ну это не серьёзно ребята(я к тем, кто делал задачу и валидатор). Зарубили за private поля и за то, что я поменял в методе toString() все операции конкатенации String'а на StringBuilder append() который очевидно лучше по производительности. То есть Вы нам даёте материал по StringBuilder'у, даёте задачу (омовение Рамы), где это можно применить и тут-же в следующей задаче "бъёте по рукам" за то, что мы это применяем. В чём смысл?
steff11 уровень
31 июля, 06:33
Вся сложность тут именно с пустым листом. У меня начало такое: Human kid1 = new Human("Юра",true,12, new ArrayList<Human>()); далее уже легче.
Анастасия 16 уровень, Санкт-Петербург
22 июля, 16:13
Это просто жесть. Сначала заполняла массив сразу, добавляя объект в children.add(new Human(....)), не прокатило. Так что вдруг кому это поможет: 1.Создаем массив; 2.Создаем объекты (Human son1 = new Human(....)); 3.Заполняем гребаный массив. В toString тоже пришлось залезть, но с помощью комментов снизу. Так что спасибо, ребята))
Дмитрий14 уровень, Краснодар
9 июля, 10:09
Именно так и выводит, но последний пункт валидатор не пропускает.
Alexey Andreev14 уровень
1 июля, 10:23
Ключевое слово ВСЕ объекты на экран, т е принадлежности недостаточно... Должно получиться что то типа: Имя: Василий, пол: мужской, возраст: 56, дети: Лешко Имя: Петрович, пол: мужской, возраст: 64, дети: Полина Имя: Марфуша, пол: женский, возраст: 57, дети: Лешко Имя: Федора, пол: женский, возраст: 60, дети: Полина Имя: Лешко, пол: мужской, возраст: 34, дети: Игорь, Алена, Вася Имя: Полина, пол: женский, возраст: 36, дети: Игорь, Алена, Вася Имя: Игорь, пол: мужской, возраст: 15 Имя: Алена, пол: женский, возраст: 12 Имя: Вася, пол: мужской, возраст: 21 ЗЫ... я из за этого с ВАЛИдатором переругался и больше с ним не разговариваю:-D Короче говоря надо для таких задач развивать "юридическую внимательность".
Wladyslaw20 уровень
21 июня, 13:19
Обратите внимание что переопределенный toString юзает поле с листом даже у тех объектов - где их не должно быть. То бишь, даже если "нет детей" - нужно передать пустой лист туда иначе будет NullPointerException Ну да, еще модификаторы доступа бракует. Сделал поля private - не пустило. Не знаю почему такой подход - во всех книжках пишут мол ООП, инкапсулируйте все что можно.