0 / 0 / 0
Регистрация: 17.04.2018
Сообщений: 13
1

Почему обнуляется лист в экземпляре класса? О.о

13.11.2018, 14:06. Показов 1128. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Понимаю что вопрос простой, но хоть убей в голове не укладывается, почему при обнулении листа в main, у нас обнуляется поле в экземпляре класса?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Solution {
    public static void main(String[] args) {
        ArrayList<Human> child = new ArrayList<>();
 
        Human son1 = new Human("John1");
        Human son2 = new Human("John2");
        Human son3 = new Human("John3");
        child.add(son1);
        child.add(son2);
        child.add(son3);
 
        Human father = new Human("David", child);
        //Если делаем clear то father.children выводит пустой лист!
        //child.clear();
        System.out.println(father.children);
    }
 
    public static class Human {
        private String name;
        private ArrayList<Human> children;
 
        Human(String name, ArrayList<Human> children) {
            this.name = name;
            this.children = children;
        }
 
        Human(String name) {
            this.name = name;
        }
    }
}
Добавлено через 7 минут
Аааа, мы передаем ссылку, а потом обнуляем объект по этой ссылке. Все, туплю. Спасибо)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2018, 14:06
Ответы с готовыми решениями:

Коллекция объектов одного класса в экземпляре другого класса
Извиняюсь, если написал не совсем адекватный заголовок. В общем, у меня есть такая модель: public...

Сериализация класса содержащий лист и лист листов
Всем привет. Пытаюсь сериализовать класс содержащий лист и лист листов: public class...

Параметр в экземпляре класса
Добрый день всем. имеется обрывок класса template &lt;class TKey, class TStoredData&gt; class...

Обнуляется переменная почему ?
var user .. var// global _getObjectSet : Array_of_Vehicle; i:integer; ...... procedura 1...

1
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
13.11.2018, 14:09 2
Лучший ответ Сообщение было отмечено petro2033 как решение

Решение

Потому что child и children ссылаются на один и тот же объект
1
13.11.2018, 14:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2018, 14:09
Помогаю со студенческими работами здесь

Почему поинтер обнуляется ?
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() {...

Не обнуляется таймер почему-то
procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled:=True; ...

Почему все обнуляется???
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; // прототипы функций void input ( float , char);...

Почему массив не обнуляется
Не знаю почему массив не обнуляется. #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru