Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.08.2015, 13:50
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию можно ли передать int как ссылку?

Добрый день

У меня много зависимостей от одной переменной distance:int, которая несёт в себе значение остатка расстояния, соответственно везде приходится создавать переменную тоже типа, которая вызывает метод get из класса, хранящего переменную distance, каждый кадр. Так вот можно ли передать передать distance как ссылку?

Старый 18.08.2015, 14:10
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Нет, нельзя. Но если сильно хочется, то используйте VO.
Код AS3:
public class IntVO
    {
        private var _value:int;
 
        public function IntVO()
        {
        }
 
        public function get value():int
        {
            return _value;
        }
 
        public function set value(value:int):void
        {
            _value = value;
        }
    }

Старый 19.08.2015, 07:50
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Нет, нельзя. Но если сильно хочется, то используйте VO.
Код AS3:
public class IntVO
    {
        private var _value:int;
 
        public function IntVO()
        {
        }
 
        public function get value():int
        {
            return _value;
        }
 
        public function set value(value:int):void
        {
            _value = value;
        }
    }
Да, но имя класса какое-то левое. Зачем изобретать велосипед, когда он уже есть. В той же джаве, подобная обертка называется просто Integer

Цитата:
а почему не просто valueOf? или int принципиально?
valueOf это немного для других целей. В джаве Integer.valueOf() вернет экземпляр Integer, а не примитив int.
Для сравнения лучше все-таки исользовать value
Цитата:
Покажите пример как код alexandrratush'а спасает от случайной записи.
Легко. Поставь в set value брейк поинт и сразу поймешь откуда был вызов. А в случае с простой паблик переменной отследить изменение будет не реально

Старый 19.08.2015, 08:49
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 4  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Легко. Поставь в set value брейк поинт и сразу поймешь откуда был вызов. А в случае с простой паблик переменной отследить изменение будет не реально
Спасибо. Сам бы никогда до этого не дошел, потому что по старой привычке не пользуюсь отладчиком

Старый 18.08.2015, 14:17
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 5  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
alexandrratush

у меня в классе именно так и написано, соответственно в других классах я постоянно вызываю метод get

Старый 18.08.2015, 15:34
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 6  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
alexandrratush, можете подробно описать почему не просто
Код AS3:
public class IntVO {
    public var value:int;
}

Старый 18.08.2015, 15:44
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 7  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
callme принципы сокрытия информации и инкапсуляции

Старый 18.08.2015, 16:10
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 8  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
callme принципы сокрытия информации и инкапсуляции
В примерах из статьи на википедии инкапсуляция используется когда нужно что-то скрыть.

Зачем в нашем случае скрывать переменную value за геттером/сеттером непонятно.

Старый 18.08.2015, 16:21
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 9  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от callme Посмотреть сообщение
В примерах из статьи на википедии инкапсуляция используется когда нужно что-то скрыть.

Зачем в нашем случае скрывать переменную value за геттером/сеттером непонятно.
ну в моём случаи наверно затем, что от этой переменной зависит 1/4 логики игры и произвести где-то случайную запись совсем не хочется

Старый 18.08.2015, 16:34
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 10  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
ну в моём случаи наверно затем, что от этой переменной зависит 1/4 логики игры и произвести где-то случайную запись совсем не хочется
Покажите пример как код alexandrratush'а спасает от случайной записи.

Добавлено через 4 минуты
ZackMercury, автор топика хочет менять значение свойства distance из других классов. Как вы хотите применить valueOf?

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.