Создали объект woman Woman woman = new Woman(); я так понимаю под данный объект выделилась память(виртуальная или физическая) и в переменную внесена ссылка на данный объект. После чего в данный объект мы внесли переменную что муж данной жены это мужчина woman.husband=man; и эти данные были внесены в память объекта для чего мы ниже указываем повторно объект Woman c переменной, что мужчина ее муж (public Man husband;)? public static class Woman { public int age; public int height; public Man husband; } для того чтоб эта переменная была видима с любого класса? ТО есть если нужна видимость только в текущем классе достаточно верхней переменной, а если нужен доступ то достаточно нижней переменной? не обязательно их писать дважды в дальнейших подобных программах? тут дважды написано в виде примера?