Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / изменение свойств / 4 сообщений из 4, страница 1 из 1
19.09.2004, 15:47
    #32701274
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение свойств
Есть следующий метод:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public void getHighestCombiantion(Temp high, Temp low) {
        SubTemp subtemp1 = high.sub;
        SubTemp subtemp2 = low.sub;


        for (int i = 0; i < 10; i++) {
		
		некоторые действия, изменяющие high.sub и low.sub

                if (условие) {
			меняем subtemp1
			т.е. 
			subtemp1 = high.sub;  // high.sub измененный 
			subtemp2 = low.sub;  // low.sub измененный 
                }
	}
}
условие выполняется только один раз, но почему-то subtemp1 и subtemp2 изменяются одновременно
с high.sub и low.sub на протяжении выполнения всего цикла. Как лечить ? Возможно я просто чего-то недопонимаю, объясните plz.
...
Рейтинг: 0 / 0
19.09.2004, 16:53
    #32701319
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение свойств
А что тут не допонимать?

Переменная это указатель на объект, а не сам объект.

Поэтому после записи
subtemp1 = high.sub
в переменной subtemp1 ссылка на тот же самый объект, что и в sub.

В итоге, если объект изменяется (например, sub.changeSmth(), но не sub = new SubTemp(...)) те же самые изменения "будут сделаны" и в subtemp1, т.к. обе переменные ссылаются на один и тот же объект.

В твоём случае нужно делать копию объекта, что-то вроде
subtemp1 = (Subtemp)high.sub.clone() или new Subtemp(high.sub).
Естественно, это нужно реализовать сначало :)

Или хорошенько подумать, а можно ли обойтись без этого присвоения совсем.
...
Рейтинг: 0 / 0
19.09.2004, 16:55
    #32701321
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение свойств
patch: сначало -> cначала :)
...
Рейтинг: 0 / 0
19.09.2004, 17:28
    #32701331
^ozzy^
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
изменение свойств
подозревал ... Так .. будем реализовывать :) Спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / изменение свойств / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]