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

  • 5
  • Недоступна
Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), дети (ArrayList Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (199)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Алекс Тута10 уровень, Киев
14 февраля, 22:58
Промучался весь вечер, делал через конструкторы, никак не мог понять почему валидатор не принимает решение. В консоль выводил через System.out.println(Object.toString()+...) потом решил добавить в список и вывести в консоль через foreach-принял. Решение не менял. В задании как выводить в консоль условия не увидел. Без матов больше ничего написать не могу.
Seryoga Eganov13 уровень, Москва
1 февраля, 13:44
Главное - проинициализировать список в классе. Создаем объекты, идём от младших к старшим. Никаких конструкторов не нужно, просто добавляем объекты в список children, если у новосозданного объекта есть дети (если несколько, то через Collections.addAll). На самом деле валидатор пропустил решение без инициализации переменных( типо имён, возраста и тд), главное чтобы связь была выстроена правильно - в списке children должны лежать ссылки на соответствующие объекты. В конце загоняем все объекты с помощью того же addAll в рандомный список и выводим через улучшенный for.
Alexey20 уровень, Минск
31 января, 17:31
Среднее количество попыток для этой задачи 1.67 - ага, поверил)))
VETA15 уровень, Екатеринбург
6 февраля, 07:25
Тебе тут нужно вывести на экран объекты, зачем нажимать на кнопку "проверка" и тратить попытку, если можно нажать запуск и посмотреть всё ли ты правильно сделал.
Alexey20 уровень, Минск
6 февраля, 07:53
Так все выводилось, но проверку не проходило)) А так да, запускаю на проверку только когда все работает, это очень спасает от всяких описок мелких, например
VETA15 уровень, Екатеринбург
6 февраля, 12:23
Ну вот по этому и среднее количество попыток маленькое, т.к. можно проверять задачу сколько угодно раз через запуск.
Бейбарыс13 уровень, Санкт-Петербург
27 января, 09:40
как детей создавать? зачем вообще нужен ArrayList<Human>?? вообще условие понять не могу
Дмитрий15 уровень
27 января, 11:57
У дедушки и бабушки есть сын это например папа по отношению к детям. У вторых дедушки и бабушки есть дочь это мама по отношению к детям. Добавляешь детей через children.add (...) Создаешь детей обычным способом точно так же как маму папу и так далее только у них нет детей соответсвено. Добавляешь к маме и папе по 3 ребенка. Все
Бейбарыс13 уровень, Санкт-Петербург
27 января, 14:21
то есть я в конструкторе пишу так?
public Human(String name, boolean sex, int age, ArrayList<Human> child)
а как добавить например папе 3 детей????
PiVAS11 уровень
30 января, 20:57
public Human(String name, boolean sex, int age, Human child)Human father = new Human("Ded", true, 31, child1, child2, child3);
Дмитрий15 уровень
31 января, 17:32
Задача решается полностью даже без конструкторов!
Dennis13 уровень, Москва
26 января, 11:14
Как перестать везде искать подвох?
Zeonlan13 уровень, Минск
15 января, 11:04
Как бы мне вывод организовать правильный. А то я toString() совсем не использую.
Zeonlan13 уровень, Минск
15 января, 11:17
Да и валидация не по этому не проходит. Вообще хрень какая-то.
Александр Ковалев12 уровень, Москва
23 января, 06:00
метод toString используется автоматически, если Вы просто передадите созданный Вами объект например в System.out.print
Владислав Пахомов15 уровень, Белгород
12 января, 15:04
А в каком порядке создавать обьекты и выводить их?
Никита Лысов20 уровень, Москва
12 января, 18:09
Строго указанном в условии - 2 деда(с указанием сына/дочери), 2 бабки(с указанием сына/дочери), отец, мать, 3 ребенка
Александр Ковалев12 уровень, Москва
23 января, 06:02
выводил и заводил в своем порядке... Валидатор не обратил на это внимание
Vilgelm Legus18 уровень
7 января, 21:10
Если пытаться сделать вывод через ArrayList<Human> human.forEach(x - > System.out.println(x.toString())) то валидация не проходит, нужно через цикл фор или форич
Dmitriy14 уровень, Москва
4 января, 15:32
В задании ничего не сказано про конструкторы, решил ради прикола сделать без них. Но вот какой казус вышел, я не знаю, как заполнить список Human child1 = new Human(); child1.name = "petya"; child1.sex = true; child1.age = 9; Human father = new Human(); father.name = "vasya"; father.sex = true; father.age = 39; father.children.add(child1); компилятор ругается на NullPointerException я конечно получив по щам от компилятора, сделал испуганное литсо, перестал извращаться и убежал писать через конструкторы, но кто знает, как тогда заполнять поле типа аррэйлист внутри класса извне? А не, нормально. можно и без конструкторов. я просто забыл проинициализировать children. было ArrayList<Human> children; стало ArrayList<Human> children = new ArrayList<>(); и зажужжало ) просто нечего было заполнять. вот и поговорили )
Александр16 уровень, Казань
22 января, 10:25
Добавил в метод toString проверку на NULL
if (this.children != null){
Brianteo11 уровень, Москва
12 февраля, 12:01
ArrayList<Human> children = new ArrayList<>();
Добрый человек! Дай Бог тебе здоровья! Я полдня мучился! И так крутил, и сяк - и с конструктором, и без... а дело было всего в одной строчке! Спасибо от души!
Dmitriy14 уровень, Москва
14 февраля, 08:16
Ды незачто. Сейчас почитал, даже не сразу врубился, об чём идёт речь ) тут главное понять почему не работало и почему заработало. понял = запомнил.
Valery9 уровень
вторник, 17:39
да, у меня тоже не проходило на nullpointerexception, проверка на null в toString помогла, спасибо!
Armen11 уровень, Москва
4 января, 12:35
Абстрактное Т.З. Нет четкого и ясного требования!
Red Lee16 уровень, Москва
4 января, 21:43
На работе будет ещё хуже