powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Экземпляры одного класса
4 сообщений из 4, страница 1 из 1
Экземпляры одного класса
    #39176047
Aliara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Возникла проблема, никак не могу решить, может кто подскажет.
В классе Practice есть два поля - экземпляры класса NotePaint: sNote и bNote. В них есть поле ArrayList<Integer> song, доступ к которому производится посредством getMassive() и setMassive().
В классе Practice есть метод, принимающий экземпляр класса NotePaint:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private void RandNote(NotePaint paint){
         ib.clear(); //поле класса Practice. Тип ArrayList<Integer>
         ib.add(0,random.nextInt(10)); //Запись в ArrayList
        
        if (paint.equals(sNote)){
                  paint.setMassive(ib);
                 
                  bNote.getMassive().clear();
                  System.out.println("sNote "+sNote.getMassive());
                  System.out.println("bNote "+bNote.getMassive());
        
      }
}



В другом месте программы поисходит вызов метода
Код: java
1.
RandNote(sNote)


Мне казалось, что метод не должен никак затрагивать bNote, но почему-то строчка
Код: java
1.
bNote.getMassive().clear();

чистит оба массива в экземплярах. Если же ее убрать, то, опять же, записывается в оба экземпляра. Причем, если, допустим, в метод еще и строки дописать:
Код: java
1.
2.
System.out.println((paint.equals(sNote));
System.out.println((paint.equals(bNote));


Код: java
1.
RandNote(sNote)


Первая будет выдавать true, а вторая false. В чем может быть проблема?
...
Рейтинг: 0 / 0
Экземпляры одного класса
    #39176120
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aliara,

Вы привели код, который к проблеме отношения не имеет. Очевидно что у вас оба экземпляра ссылаются на один экземпляр списка.
...
Рейтинг: 0 / 0
Экземпляры одного класса
    #39176137
Aliara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, я, возможно, сильно ошибаюсь, но разве тогда не все поля экземпляров должны вести себя так же?

А у меня получается, что
Код: java
1.
2.
3.
sNote.yUser=3;
System.out.println(sNote.yUser);
System.out.println(bNote.yUser);


выдает результат 3 и 0

И еще заметила, что
Код: java
1.
2.
3.
4.
System.out.println("1. bNote "+bNote.getMassive().toString());
ib.add(0,iRand);
System.out.println("Randote ib:"+ib.toString());
System.out.println("2. bNote "+bNote..getMassive().toString());


выдает результат
1. bNote []
Randote ib: 2
2. bNote [2]
Причем ib и bNote нигде не связаны вообще.
...
Рейтинг: 0 / 0
Экземпляры одного класса
    #39176142
Aliara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, прошу прощения, неправильно прочитала)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Экземпляры одного класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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