Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Разъясните код с SWT |
Автор: zhz 24.2.2012, 02:46 | ||||
Может, кто то посчитает, что тему следовало создать в "Общем" разделе, но все таки тут про ГУИ)). Вообщем такой код:
Мне непонятно, зачем автор объявив один раз переменную (Label label), в дальнейшем для создания собственно, нескольких контроллов Label использует ОДНУ, ранее объявленную переменную? т.Е
В чем здесь логика? Зачем так делают? Правильно ли это? Получается ведь, что к первому лейбелу уже никак не обратится?! Ps Взглянул еще раз на код, и обратил внимание, что автор проделывает данный трюк только с лейбелами, для кнопок, например, каждый раз объявляет новую переменную, видимо label в дальнейшем не используется, поэтому и одна переменная на весь интерфейс. Тем не менее, как вообще программа работает? Ведь вызывая конструктор для уже созданного контрола, он сначала уничтожается? или нет? почему тогда в окне существуют несколько лейбелов, при том что это одна переменная?! |
Автор: Skynin 24.2.2012, 10:01 | ||||
Значит автору и не нужно далее обращаться к этим объектам. А ссылки на них сохраняется в shell. Причем если очень нужно - то можно оттуда их опять достать.
Никак нет. Объект в Java удаляется сборщиком мусора, когда на него нет ссылок (или ссылки хранятся в других объектах подлежащих удалению)
Переменная хранит ссылку. То есть указатель на область памяти в которой лежат данные объекта. Эту ссылку можно многократно копировать в другие переменные или поля других объектов, коллекции и т.д. Переменная никак не отвечает - ни за область памяти, ни за само значение ссылки. |