Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), дети (ArrayList Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
Собираем семейство
- 10
Недоступна
Комментарии (612)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Konstantin_B Java Developer
30 марта, 13:39
Это, случайно, не та же самая задача из 7 уровня (Семейная перепись, Java Syntax, 7 уровень, 12 лекция)???
0
Егор Комаров
29 ноября 2021, 15:20
Ничего не понял, просто нажал показать правильное решение
0
SWK
2 ноября 2021, 11:36
А это ограничение откуда следует???
"Убедись, что у полей класса Human нет модификаторов private и static."
С private программа работает. Из "Класс Human должен содержать четыре поля." то, что поля не могут быть приватными, не следует. Других ограничений нет.
+5
Anonymous #1396846
28 января, 19:15
Плюсую. Может это стоит добавить в условия задачи?🤨
0
SWK
2 ноября 2021, 11:23
И как необученый этому человек должен был додумываться до "Human... children" ?
Ощущение, что дали заведомо невыполнимое задание, чтобы по итогам назвать дураком.
0
Kirill
5 ноября 2021, 00:30
Я совсем не использовал varargs, и не додумался бы до него на данном этапе. Просто перегружал конструктор. Во втором конструкторе разрешил еще возможность добавлять чад в виде List. А во избежание NullPointerExeption при выводе в консоль детей, добавил в метод toString проверку на null.
0
Дмитрий
14 декабря 2021, 23:03
надо было инициализировать ArrayList в момент перечисления полей и этой проблемы нет.
ArrayList<Human> children = new ArrayList<>();
Задача вообще простая, три действия:
1. Добавляем перечисленные поля в класс, можно и без конструкторов,
2. в Solution добавляем родню: 2 раза (1 бабушка + 1 дедушка = 1 отец/мать) = 3 ребёнка. Ребёнка записываем, например, mother.children.add(son);
3. Выводим на печать через метод toString().
+1
макс лапушкин
4 августа 2021, 11:29
не понял а почему можно выполнить задачу используя конструктор в требовании ведь написано что класс Human может иметь только один метод но у него уже есть же переопределенный toString
+3
etaxo
28 сентября 2021, 07:53
Тоже глаз зацепился за это. В прошлом такой формулировкой мне запрещали использовать конструкторы. Теперь же намекают, что конструктор не метод. В какой момент мы отказались от условности "конструктор = метод" я не понял.
+2
Булат
20 октября 2021, 11:56
>класс должен содержать только один метод
>низя добавлять конструктор
>сейчас можно
+1
piersto
15 июля 2021, 19:25
Решил в стиле: через ж тормоза - создавал списки детей прямо в main.
А решение от Javarush использует Collections. Не помню, чтобы мы такое проходили.
+1
etaxo
28 сентября 2021, 07:56
В этом курсе задачи иногда убегают вперед. Ты либо гуглишь, либо пропускаешь задачу, чтобы вернуться позже. Капитан ведь предупредил - только для старослужащих.
+1
Сергей Романенко
2 июня 2021, 16:07
Решил задачу с четвёртой попытки, хотя мог бы с первой. Всхохотнул, когда понял в чём дело.
Я не стал изобретать велосипед и семью создал аналогичную своей и данные забивал, какие есть по факту. У меня как раз полный набор: два деда, две бабки, родители, сестра и брат. Забил. Ошибка по последнему пункту. Долго понять не мог в чём дело, но разобрался. Сам себя наказал по факту.
У меня брат родной, а сестра сводная (у отца по первому браку). Бате в дочки записал, а маме нет. Тестирование показало, что так, видимо, не бывает)
Таки дела)))
+6
piersto
15 июля 2021, 19:35
Подвела тебя семья, сама того не ведая.
+3
Serzhes
15 мая 2021, 08:21
Чтобы было покороче, можно создать конструктор со всеми полями класса - public Human(String name, boolean sex, int age, ArrayList<Human> children).
Далее, при создании экземпляров класса, последним аргументом указать "new ArrayList<>()".
Сэкономит 9 строк
+3
Wiun
3 апреля 2021, 19:59
решил через кучу новых списков)
увидел такое в решении...
что оно значит то? и как им пользоваться? подскажите знатоки 🙂🙃 +1
Vitaliy Kang
4 апреля 2021, 07:03
Это называется varagrs. Почитать можно здесь: https://javarush.ru/groups/posts/2733-java-varargs
+9
Станислав
3 апреля 2021, 18:33
Почему поля не должны быть privat?
Это же главное правило, поле должно быть private для его изменения делаются set и get методы
0