public Human (String name,boolean sex,int age,Human...children) {
this.name=name;
this.sex=sex;
this.age=age;
Collections.addAll(this.children,children);
}
Тут где Human...children, для меня туман почему это работает.. Кому не сложно объясните пожалуйста
Oleg Tynichenko
13 уровень
Не пойму как работает конструктор
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Андрей Гузанов
11 июня 2021, 11:47
Параметр Human...children указывает, что в качестве параметров может приниматься несколько аргументов.
Грубо говоря, ты мог усложнить эту конструкцию и написать вместо :
написать это:
Но если ребёнка не 3, а больше или меньше ?
Тогда тебе придется создавать точное количество параметров Human в конструкторе и в зависимости от задачи, число параметров может отличаться , следовательно придётся объявлять несколько однотипных конструкторов с разным количеством параметров типа Human .
А тут ты за счёт Human...children можешь вписать сколько угодно "детей" и далее записать их в массив Collections.addAll(this.children,children);
0
hidden #2322530
11 июня 2021, 08:22
Human это всего лишь тип объекта
это varargs. https://javarush.com/groups/posts/2733-java-varargs
0