Почему man.wife = woman, а не woman = man.wife?
Илья
9 уровень
Woman = man.wife или man.wife = woman. В чем отличие?
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
13 августа 2019, 11:38решение
ты обращаешься к полю Жена, конкретного мужчины, и присваиваешь этому полю определенную женщину.
Все, таким образом ты женил мужчину. Он уже женат.
Здесь есть какая-то женщина. Ты ее удаляешь полностью - остается только внешняя оболочка, в которую ты помещаешь жену мужчины.
Так делают чтобы получить доступ к переменной.
Например я очень хочу печеньки.
Я создаю
Это создался шаблон печеньки, этот объект пустой.
А потом я говорю:
вот эта строка даст мне доступ ссылку на печеньку Ильи.
То есть для Ильи фактически ничего не меняется.
Просто я получил доступ, моя переменная печенька, ссылается на печеньку Ильи.
А значит я могу вызвать метод печенька.размер, печенька.вкус, могу что-то делать с этой печенькой.
Первая же фраза была наоборот.
Я создал печеньку и строка
илья.печенька = печенька ,
фактически сказала "У Ильи может и была печенька,А может и нет. Но теперь она точно у него есть" то есть я присвоил Илье свою печеньку. Для Ильи все поменялось.
+2
Justinian Judge в Mega City One Master
13 августа 2019, 11:30
На примере:
Есть класс Woman.
Класс может иметь методы (обособленные подпрограммы) и поля (или по другому называют - переменные класса).
В этом классе мы видим три переменных (полей класса) - возраст, рост и муж.
Поля класса это характеристики объекта. То есть созданная на базе этого класса объект типа Женщина будет иметь такие свойства:
возраст, рост, муж.
Теперь к строке
ключевое слово public - это модификатор доступа, который говорит, что мы можем к этому полю обращаться с другого класса.
Man - это тип переменной, в других полях - age и height- тип переменной int (примитивный тип, который содержит целочисленное число). В нашем случае, Man это тип Мужчина. Это значит что объект, который будет в этом поле/свойстве/характеристике - будет именно типа Мужчина. Не Собака или Осел или Креветка.
husband это имя переменной класса/поля. Эта переменная будет ссылаться на конкретный объект, в случае наличия мужа..
По умолчанию, значение переменной husband будет равно null (это дефолтное значение ссылочных переменных, если их не инициализировали).
То есть эти строки полностью равнозначны:
Что логично, женщина при создании (рождении) имеет потенциальную возможность иметь мужа (есть соответствующее поле), но естественно, это поле никуда не ссылается (равно null), потому что мужа пока нет. А потом со временем, женщина может выбрать мужа - тогда ссылка husband будет ссылаться на конкретного мужчину (конкретный объект в памяти).
В данной задаче это происходит в методе main (первый и четвертый пункт условий)
+2
Justinian Judge в Mega City One Master
13 августа 2019, 11:30решение
В методе main
создается новый объект типа Жещина.
И тут она решает выбрать Максима в мужья.
Идет регистрация брака, или съезжаются в гражданском - не важно, но статус у женщины поменялся.
через точку мы обращаемся к полям/методам объекта.
Мы обращаемся к полю класса и присваиваем ссылку на мужчину - Алексея. Теперь он ее муж.
Но допустим он выносил елку в августе и приходил домой в помаде, и его выставили за дверь.
Развод.
В коде это будет как?
Мы убрали ссылку на Алексея. Переменная husband никуда не ссылается - мужа нет.
Но вот встретился Иван, который решил скрасить будни. И снова есть муж.
В коде это:
присваивается ссылка на конкретного мужчину Ивана. +3
dionisis2010
24 июля 2019, 15:34решение
есть переменные man и woman, в них хранятся ссылки на страницы в соц сетях реальных людей.
man.wife это графа на страничке в которой хранится ссылка на страницу жены man
2 + 2 надеюсь сами сложите
+2