Вниз  Android-программирование (1-ые посты)
- 11.03.2014 / 17:33
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
usb_device (11.03.2014/17:21)
Кажется я понимаю в чем дело, если не ошибаюсь, то когда на один обьект ссылается несколько ссылок, то он будет существовать вплодь до того пока на него ссылается хотя бы одна из ссылок. Когда мы пише
Функцию оператора '=' в Яве знаешь?
Из книг не перестаю советовать "Философия Явы" Эккеля

Изменено Salat-Cx65 (11.03 / 17:35) (всего 1 раз)
- 11.03.2014 / 17:36
usb_device
  Пользователь

usb_device 
Сейчас: Offline
Salat-Cx65, присваивает одному обьекту ссылку на другой. Например Game gam = new Game();
Game gam2=gam. Теперь они оба ссылаются на один обьект.
- 11.03.2014 / 17:37
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
usb_device, прочитал только что в книге про яву 7 что ссылка указывает на экземпляр обьекта, если обьект изменяется, то и ссылка указывает на измененный обьект, на одно и тоже место в памяти, так что ссылка не теряется. Пробуй, если что не понятно-спрашивай.

Изменено samodelkin (11.03 / 17:39) (всего 3 раза)
- 11.03.2014 / 19:50
usb_device
  Пользователь

usb_device 
Сейчас: Offline
samodelkin, да пофиг не то, теряется ссылка. У меня есть класс в котором есть метод, этот метод принимает на вход массив, и присваивает етот массив своему массиву. Что то вроде потом есть метод отрисовки, он работает с этой же ссылкой на тот переданный массив. Так вот если там в коде игры массив не пересоздавать а очищать то все норм. А если пересоздавать то игра будет постоянно отображать состояние массива до пересоздания.
- 11.03.2014 / 19:53
usb_device
  Пользователь

usb_device 
Сейчас: Offline
но если например постоянно обновлять ссылку на массив в игровом цыкле то все норм. Типа так drawMap.setMapArrayLink(snake.map)
- 11.03.2014 / 20:16
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
usb_device, ааа, ясно. Значит ссылка при пересоздании теряется и ее надо обновлять.

Изменено samodelkin (11.03 / 20:24) (всего 1 раз)
- 11.03.2014 / 20:28
usb_device
  Пользователь

usb_device 
Сейчас: Offline
samodelkin, public static void main(String[] args) {
      int[] array=new int[5];
      int[] arrayClone;
      array[2]=5;
      System.out.println(array[2]);
      arrayClone=array;
      System.out.println(arrayClone[2]);
      array=new int[5];
      array[2]=1;
      System.out.println(arrayClone[2]);
     }
вот демонстрация этого. В консоль выведет 5 5 5, хотя должно вывести 5 5 1 если бы ссылка не терялась.
- 11.03.2014 / 20:40
Salat-Cx65
  Пользователь

Salat-Cx65 
Сейчас: Offline
usb_device, Как я понимаю беда была в разнице ПРИСВАИВАНИЯ обьекта и КОПИРОВАНИЯ объекта.
- 11.03.2014 / 20:45
usb_device
  Пользователь

usb_device 
Сейчас: Offline
Salat-Cx65, ну у меня как раз таки было присваивание, обьект методом clone() я не копировал, если ты об этом.
- 11.03.2014 / 20:54
usb_device
  Пользователь

usb_device 
Сейчас: Offline
кстати, если сделать так array=null; это значит что массив полностью удалиться, как ссылка на память, так и данные в памяти?
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)