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

  • 10
  • Недоступна
Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), дети (ArrayList Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (602)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
макс лапушкин
Уровень 10, Куровское, Россия
4 августа, 11:29
не понял а почему можно выполнить задачу используя конструктор в требовании ведь написано что класс Human может иметь только один метод но у него уже есть же переопределенный toString
piersto
Уровень 17, Montreal, Canada
15 июля, 19:25
Решил в стиле: через ж тормоза - создавал списки детей прямо в main. А решение от Javarush использует Collections. Не помню, чтобы мы такое проходили.
Сергей Романенко
Уровень 14, Санкт-Петербург, Россия
2 июня, 16:07
Решил задачу с четвёртой попытки, хотя мог бы с первой. Всхохотнул, когда понял в чём дело. Я не стал изобретать велосипед и семью создал аналогичную своей и данные забивал, какие есть по факту. У меня как раз полный набор: два деда, две бабки, родители, сестра и брат. Забил. Ошибка по последнему пункту. Долго понять не мог в чём дело, но разобрался. Сам себя наказал по факту. У меня брат родной, а сестра сводная (у отца по первому браку). Бате в дочки записал, а маме нет. Тестирование показало, что так, видимо, не бывает) Таки дела)))
piersto
Уровень 17, Montreal, Canada
15 июля, 19:35
Подвела тебя семья, сама того не ведая.
Serzhes
Уровень 16, Санкт-Петербург, Россия
15 мая, 08:21
Чтобы было покороче, можно создать конструктор со всеми полями класса - public Human(String name, boolean sex, int age, ArrayList<Human> children). Далее, при создании экземпляров класса, последним аргументом указать "new ArrayList<>()". Сэкономит 9 строк
Dim
Уровень 16, Житомир, Украина
3 апреля, 19:59
решил через кучу новых списков) увидел такое в решении...
Human... children
что оно значит то? и как им пользоваться? подскажите знатоки 🙂🙃
Vitaliy Kang
Уровень 26
4 апреля, 07:03
Это называется varagrs. Почитать можно здесь: https://javarush.ru/groups/posts/2733-java-varargs
Станислав
Уровень 9, Санкт-Петербург
3 апреля, 18:33
Почему поля не должны быть privat? Это же главное правило, поле должно быть private для его изменения делаются set и get методы
Dmitry Enterprise решения на C#
27 февраля, 21:37
Затупил на 20 попыток из-за того, что вместо
public List<Human> children = new ArrayList<>();
прописал
public List<Human> children;
Бывает...
Максим Белоусов
Уровень 13, Москва, Россия
5 июля, 14:39
Я так же и получал при запуске NullPointerException((
Килинар
Уровень 41, Москва
16 августа, 11:33
Угу, у меня еще похлеще:
for(Human child : children)
                this.children.add( child );
Вот только на определенном моменте я в конструкторе поменял название входного массива children на otherChildren, а тут поменять забыл и попыток 5 не мог понять, что не так. Хотя да, тут я еще протупил, что на вывод невнимательно смотрел, а так бы мог сразу понять.
Алексей Сивенков
Уровень 13, Москва
20 февраля, 12:02
Долго тормозил , с пониманием того что родители и старики -по конструктору не отличаются. так и не понял зачем их включили в задачу( думал нужна отдельная реализация- оказалось- нет)
Игорь
Уровень 19, Витебск, Беларусь
18 февраля, 13:25
Мда, наворотил исходя из тех знаний что, есть на данный момент. Задачу решил, но когда увидел ответ - обалдел, как можно было изящно решить проблему)
Dim
Уровень 16, Житомир, Украина
3 апреля, 19:58
я сделал точно так же) идентично))
Денис Измайлов Инженер- программист в CloudFactory
27 апреля, 12:59
зачем плодить столько сущностей ? :) ArrayList<Human> family = new ArrayList<Human>(); family.add(new Human("Коля",true,3, new ArrayList<Human>())); //0 family.add(new Human("Витя",true,7, new ArrayList<Human>())); //1 family.add(new Human("Груня",false,13, new ArrayList<Human>())); //2 family.add(new Human("Саша",true,33, new ArrayList<Human>())); //3 family.add(new Human("Алена",false,31, new ArrayList<Human>())); //4 family.add(new Human("Вася",true,65, new ArrayList<Human>())); //5 family.add(new Human("Петя",true,66, new ArrayList<Human>())); //6 family.add(new Human("Лена",false,61, new ArrayList<Human>())); //7 family.add(new Human("Вера",false,60, new ArrayList<Human>())); //8 family.get(8).children.add(family.get(4)); family.get(7).children.add(family.get(4)); family.get(6).children.add(family.get(3)); family.get(5).children.add(family.get(3)); family.get(4).children.add(family.get(0)); family.get(4).children.add(family.get(1)); family.get(4).children.add(family.get(2)); family.get(3).children = family.get(4).children;
Павел Власов
Уровень 12, Москва, Россия
6 мая, 09:25
Под ответом вы имеете ввиду найденные решения в обсуждениях или где-то есть эталонные решения? Спасибо. То что Вы привели это ваш первоначальный вариант?
Игорь
Уровень 19, Витебск, Беларусь
14 мая, 09:00
Под ответом подразумевал - правильный вариант решения от JavaRush. Да, мой первоначальный вариант).
Александр Горохов работаю в заводе
16 сентября, 18:19
это, наверное, неправильное решение, но именно этот коммент открыл мне глаза)))))
олеся Software Developer
15 февраля, 11:11
Помогите пожалуйста ,валидатор ругается на " Класс Solution должен содержать один метод."Хотя я ничего не добавляла относительно базовых условий:в Solution метод main и public static class Human ,все как в условии.
Дмитрий
Уровень 29, Москва
22 февраля, 10:45
У меня такое было при выводе через лямбду
allMeatBags.forEach(s -> System.out.println(s.toString()));
олеся Software Developer
2 марта, 12:12
да она самая.уже просто стала комментить все подряд и переписывать другими вариантами и оказалось что сокращенный вывод на печать foreach через лямбду не пропускает.😒