Показать сообщение отдельно
Старый 24.09.2017, 21:55
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 39  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Не совсем понял результат выполнения данного кода.
В первой строке меняется значение свойства bold объекта TextFormat, который хранится в данном экземпляре TextField. При этом сам TextField ничего об изменении не знает, ведь его собственным свойствам никакие новые значения не присваивались и его методы не вызывались.
Во второй строке вызывается сеттер самого TextField: "_textField.defaultTextFormat = " и ему отдается объект TextFormat, полученный из геттера _textField.defaultTextFormat. То есть тот самый объект, в котором значение свойства .bold теперь true. Cеттер это функция, она не просто присваивает этот ТекстФормат внутреннему хранилищу (он итак там лежит). Сеттер делает что-нибудь еще: считывает свойства переданного ему объекта ТекстФормат и "применяет" их "прямо сейчас".
(может пример с ТекстФорматом и не совсем корректен ввиду того что там не требуется это "прямо сейчас", но вот если ты захочешь рычажком слайдера менять длину бороды в редакторе персонажа, то просто менять одно из свойств объекта Гендер будет недостаточно, чтобы видеть изменение в реальном времени).

Цитата:
Что будет предпочтительнее?
Знать, что в этом месте программы тебе нужны настройки внешности персонажа и они лежат в объекте класса Гендер. Не надо чрезмерно увлекаться "String-типизацией" в ущерб strong-типизации. Не лишай себя удовольствия получать сообщения об ошибках на этапе компиляции, а не где-то в глубине игрового процесса.
__________________
Reality.getBounds(this);