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

  • 10
  • Недоступна
Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), дети (ArrayList Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (573)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
17 января, 11:29
Ребята, объясните пожалуйста этот момент. Вот в классе "Human" содержится у нас метод "toString()", возвращающий строку, применяя поля объекта класса "Human"... Почему если этот метод содержится в классе, то он автоматически выполняется при создании объекта? почему не требуется дополнительно этот метод вызывать, прежде чем вывести объекты на экран? Любой метод, прописанный в классе - выполняется автоматически для данных каждого вновь созданного объекта? Спасибо!
Даниил 8 уровень, Минск
вчера, 15:40
Посмотри вот эту лекцию https://www.youtube.com/watch?v=KEQ043yT3F4&list=PLAma_mKffTOSUkXp26rgdnC0PicnmnDak&index=25
около 9 часов назад
Спасибо большое!
baddan 14 уровень, Тамбов
5 января, 12:37
Задача хоть и простая, но в тоже время запутана изза связей и "избыточного/понятного" ТЗ. 1 мама + 1 папа = 3 детей дед1+баба1 = ребенок Мама дед2+баба2 = ребенок Папа т.к все категории делал в списках Мама и Папа получились в одном списке который скормил всем четырем дедам. что не верно. разделил потом семью на отдельный список мама и отдельно список папа и заработало. 1. создал список из 3 детей 2. создал список мама 3. создал список папа 4. создал список д1,д2,б1,б2 на экран все списки через for в toString надо скоректировать иницилизацию переменной при Объекте null
Andrew Backend Developer в as
29 декабря 2020, 21:22
Даа ... что тут скажешь, то ли я тупой то ли лыжи не едут, смотрю в условие и понять не могу чего не хватает, а оказалось то йо майо , всего на всего то именно перечислить и вывести ВСЕ созданные объекты, а не только те что были добавлены в сам список объекта под видом "детей", ну Семен Семеныч
Сергей Жак Java Developer
19 декабря 2020, 23:52
Метод toString() следует подправить, т.к. иначе он кидается NPE на детей с неинициализированным списком собственных детей, или инициализировать их детей пустым списком. Я не помню, чтобы мы проходили уже NPE, так что держите.
int childCount = Objects.isNull(this.children) ? 0 : this.children.size();
Dmitry B 12 уровень
30 декабря 2020, 18:22
Спасибо тебе, добрый человек! Сразу, как только исправил этот момент, прошёл проверку. И не пришлось инициализировать с пустым, лишний код писать.
Илья Работает в Diler.ru
12 декабря 2020, 14:03
какой валидатор правильный!))))) у 2х родителей может быть только одинаковое кол-во детей
Алексей 22 уровень, Зима
6 декабря 2020, 05:43
Решил без создания конструктора. Понимаю, что можно было решить элегантней, но зато сам и без подсматривания в обсуждение )))
miron29 13 уровень
6 декабря 2020, 11:16
С конструктором не проходит валидацию, так как условие - в классе не должно быть больше двух методов. toString это метод и конструктор тоже метод
Andrew Backend Developer в as
27 декабря 2020, 20:28
интересно как же вы завели объект без конструктора, вот по истине интересно...
Алексей 22 уровень, Зима
29 декабря 2020, 01:36
Не создавал дополнительных конструкторов. Конструктор по умолчанию есть.
Антон Копанев Software Developer
7 января, 20:12
У меня с конструктором валидацию прошло. Видимо конструктор считают не за обычный метод.
Умалат работаю в totamtosyam
30 ноября 2020, 17:35
Поля класса
String name;
        boolean sex;
        int age;
        List<Human> children = new ArrayList<>();
Объясните как работает этот конструктор?
public Human(String name, boolean sex, int age, Human... children) {
            this.name = name;
            this.sex = sex;
            this.age = age;

            Collections.addAll(this.children, children);
        }
koshi 9 уровень, Уфа
24 декабря 2020, 07:01
Varargs Аргументы переменной длины. Мы говорим, что может передаваться сколько-то
...
объектов типа
Human
и все они будут объединены в массив
children
(Human... children)
Затем, с помощью
Collections.addAll()
засовываем всех
children[]
в
this.children
Николай Стецюк 13 уровень
30 ноября 2020, 10:38
А есть возможность через конструктор добавлять обьекты в список ? grandfather.children.add(father), ибо практикуется поля делать private для безопасности ? Например Human grandfather = new Human("Петро", true,75, father, mother, brother); где father, mother, brother - обьекты которые нужно добавтить в ArrayList.
Toxa 10 уровень, Санкт-Петербург
27 ноября 2020, 20:25
В условиях забыли указать что нужно создавать конструкторы класса. А в лекции по Collections забыли указать методы, которые будут использоваться в дальнейших задачах. Не знаю,может кому-то гугление и помогает, но по-моему в голове только каша образуется и весь результат,особенно учитывая что решать задачи можно по-разному. А вот зачем за нас переопределяют метод toString() загадка. Если конечно все идут читают Java API в оригинале без проблем и всё понимают, тогда об этом в начале курса требовалось написать.
Евгений 10 уровень, Екатеринбург
25 ноября 2020, 10:13
ААААаааа.....!!! Да что за задача!!! Единственная задача, которую никак не могу понять. За место всех мыслей у меня в голове как будто только обезьяна, которая хлопает тарелками 🤦‍♂️
SunCat модератор (волонтер) в Mojira (Mojang JIRA)
26 ноября 2020, 17:17
используй конструкторы =) можно сделать через 2 или 3 конструктора, в зависимости от метода