powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / изменение свойств
4 сообщений из 4, страница 1 из 1
изменение свойств
    #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
изменение свойств
    #32701319
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут не допонимать?

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

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

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

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

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


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