а ак обратиться на втором создании, в вашем случае 4 элемента и добавить новый нод между 2 и 3 элементами получается между прошлым (первым) newObj и last; нам получается нужно у них поменять значение полей next и prev и тут fiest ужу получается не участвует, у нас же имя того нода не уникально как к нему обратиться, получается мы следующий элемент ведь с таким же именем создаем и как в этом случае к старому обращаться за который нужно новый элемент поставить ведь он с тем же именем КОММЕНТ: Нет, компилятор сам этого не понимает, конечно. Нам как раз и нужно придумать, что и где написать, чтобы во вновь создаваемом объекте сохранить ссылки на ранее созданный объект и следующий объект. Самый первый объект во всей этой цепочке уже был создан заранее - ссылка на него сохранена в поле first. Далее, также заранее, был создан второй объект - ссылка на него попала в поле last. На начальном этапе first.next хранит в себе ссылку на объект из поля last, т.е. на тот объект, который идет следом. А last.prev хранит ссылку на объект из поля first, т.е. на предшествующий себе объект. Метод add должен создавать очередной объект типа Node и помещать его ПЕРЕД последним, т.е. перед объектом last. Например, при добавлении третьего объекта (назовем его, например, newObj) нужно сделать так, чтобы: - в first.next и last.prev передалась ссылка на него, - в поле prev этого нового объекта попала ссылка на first, - в поле next нового объекта попала ссылка на last. При добавлении четвертого объекта: - в newObj.next и last.prev передалась ссылка на этот четвертый объект, - в его поле prev попала ссылка на newObj, - а в поле next нового объекта снова попала ссылка на тот же last. И т.д.