Понедельник, 25 Ноября 2024, 19:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Вопрос - Ответ (Java)
FadeBakerДата: Среда, 22 Апреля 2015, 00:04 | Сообщение # 1
JavaSE Game Developer
Сейчас нет на сайте
Сюда задаем узконаправленные и не очень вопросы. Здесь можно быстрее получить ответ на волнующий вопрос и сэкономить время на создание и оформление темы.
Также по возможности буду стараться отвечать на вопросы и оказывать помощь по Java в рамках моих возможностей.

P.S. Примерно летом, когда появится свободное время, закончу академ. дела и освобожусь от некоторых обязанностей в жизни, планирую писать статьи по геймдеву на Java. Статьи будут рассчитаны на тех, кто знает язык на среднем уровне, поэтому сам язык рассматриваться не будет.


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
YellowAfterlifeДата: Суббота, 25 Июля 2015, 15:18 | Сообщение # 21
Сейчас нет на сайте
Цитата Jhon ()
И так делать для любого объекта, который я хочу защитить от изменения?
Тогда другой вопрос: это реально проблема Java, что там нет простого решения для этого, или это моя проблема, что я проецирую опыт C++ сюда, а в Java таких проблем нет вообще, и все решается на уровне проектирования интерфейсов?

Некоторые вещи (упомянутый const reference, передача объектов "по значению", ...) в Java и схожих языках (C#, AS, JS) по той или иной причине отсутствуют.
Тут описываются принципы преобразования C' const в структуры Java для разных случаев, но в предлагаемом ими решении для const reference (создание "прокси" классов, выбрасывающих исключения на запрещенных методах) счастья тоже мало .
Преимущественно дело архитектуры - что может пойти не так если в событии столкновения изменят какие-то свойства второго объекта, и стоит ли об этом вообще беспокоится?
В языках вроде Haxe const reference можно реализовать с помощью макроса (что будет генерировать read-only интерфейс/abstract для входящего типа автоматически), но даже там зачастую такие меры не нужны.




Сообщение отредактировал YellowAfterlife - Суббота, 25 Июля 2015, 15:22
JhonДата: Суббота, 25 Июля 2015, 15:42 | Сообщение # 22
частый гость
Сейчас нет на сайте
Цитата Статья по ссылке
In Java, the general ideology is that access policy to the state of an object is controlled by the class.

В общем, решение - immutable object.

Цитата YellowAfterlife ()
Преимущественно дело архитектуры - что может пойти не так если в событии столкновения изменят какие-то свойства второго объекта, и стоит ли об этом вообще беспокоится?

Здесь ничего страшного, это был просто пример. Я пока только изучаю Java и еще не знаком с его стилем программирования. В C++ хорошим стилем считается объявлять все аргументы и функции-члены константными по умолчанию и убирать константность, если все-таки надо менять состояние. В Java (и, видимо, схожих языках) это решается на уровне самих классов.
Меня именно концептуально вопрос интересовал, а не применительно к ситуации. Спасибо, ответ получил)
jbeginДата: Четверг, 17 Декабря 2015, 00:06 | Сообщение # 23
уже был
Сейчас нет на сайте
Цитата kol9mbo ()
не находит

А чем плох такой подход -
DenisNovacДата: Суббота, 29 Октября 2016, 18:02 | Сообщение # 24
был не раз
Сейчас нет на сайте
Цитата jbegin ()

А чем плох такой подход -

После Шилдтовских примеров очень приятный визуально. У Шилдта обычно один класс реализует интерфейс ActionListener, в нём в конструкторе создаётся форма и компоненты, а один метод ActionPerformed принимает со всех источников через if-else и getActionCommand(). Создание дополнительных классов на каждый источник менее оптимально, чем такой подход, или можно использовать когда угодно для удобства чтения кода потом?

Добавлено (28 октября 2016, 19:15)
---------------------------------------------
Подскажите, как с помощью лямбда-выражения сделать приемник события? Ну, например, определить кнопку в форме и сразу лямбдой описать её действие в том же месте? Интерфейс-наследник ActionListener - это понятно, а как дальше это сделать - не могу сообразить.

Добавлено (29 октября 2016, 18:02)
---------------------------------------------
Разобрался сам. Там даже точку с запятой после закрытия блока не нужно ставить в таком случае:

Код
mybutton.addActionListener( (e) -> {
   mylabel.setText("new text");
   } //без точки с запятой
);


Начинающий кодер на Java.
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг