|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Java - Локальные переменные? |
|
Java - Локальные переменные?
|
Новый участник Сообщения: 33 |
|
|
Отправлено: 14:50, 25-01-2015 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Вполне возможно, что в "...." метода method() что-то происходит с переменной field, но изменять её для всего объекта нежелательно. Поэтому её копируют в result, портят и возвращают куда надо.
|
Отправлено: 15:13, 25-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 33
|
Профиль | Отправить PM | Цитировать Coutty, так в этом и дело, что её не копируют - это же ссылочный тип.
вот например из исходников libgdx public class Group extends Actor implements Cullable { static private final Vector2 tmp = new Vector2(); ..................... public Actor hit (float x, float y, boolean touchable) { if (touchable && getTouchable() == Touchable.disabled) return null; Vector2 point = tmp; Actor[] childrenArray = children.items; for (int i = children.size - 1; i >= 0; i--) { Actor child = childrenArray[i]; if (!child.isVisible()) continue; child.parentToLocalCoordinates(point.set(x, y)); Actor hit = child.hit(point.x, point.y, touchable); if (hit != null) return hit; } return super.hit(x, y, touchable); } } |
Отправлено: 15:26, 25-01-2015 | #3 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Цитата GordonG:
Зачем так делать? Это как-то оптимизирует код? » В данном случае прямой доступ к полю закрыт, и осуществляется только через предопределенные автором класса методы, что позволяет уменьшить вероятность возникновения ошибок как при разработке класса (и подклассов) так и при использовании экземпляров класса. Если вы забыли - это называется инкапсуляция, один из основополагающих принципов ООП. Позволю себе привести цитату: Сводите к минимуму доступность классов и членов
Единственный чрезвычайно важный фактор, отличающий хорошо спроектированный модуль от неудачного,- степень сокрытия его внутренних данных и иных деталей реализации от других модулей. Хорошо спроектированный модуль скрывает все детали реализации, четко разделяя свой АРI и реализацию. Модули взаимодействуют друг с другом только через свои API, и ни один из них не знает, какая обработка происходит внутри другого модуля. Эта концепция, называемая сокрытием информации (information hiding) или инкапсуляцией (encapsulatiori), представляет собой один из фундаментальных принципов разработки программного обеспечения... Источник: Java Эффективное программирование. Джошуа Блох. |
Отправлено: 15:33, 26-05-2015 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочее - Переменные | RasKolbas | Общий по Linux | 8 | 23-07-2010 18:12 | |
Разное - [PHP] Переменные | CXREF | Программирование и базы данных | 2 | 16-06-2009 08:15 | |
Переменные окружения | Danwer | Общий по FreeBSD | 2 | 16-09-2007 14:47 | |
Переменные в PHP | Guest | Программирование и базы данных | 6 | 11-09-2003 04:28 | |
Переменные в PHP | Guest | Вебмастеру | 1 | 10-01-2003 13:48 |
|