Cześć, mam klasę Kolejka:
package procesy;
import java.util.*;
public class Kolejka {
ArrayList<Proces> kolejka= new ArrayList<Proces>();
public void dodajProces(Proces proces)
{
kolejka.add(proces);
}
public Proces getProces(int index)
{
return kolejka.get(index);
}
public boolean czyPusta()
{
return kolejka.isEmpty();
}
public void usunProces(int index)
{
kolejka.remove(index);
}
public void usunProces(Proces proces)
{
kolejka.remove(proces);
}
public void wyczyscKolejke()
{
kolejka.clear();
}
public void setProces(int index, Proces proces)
{
kolejka.set(index, proces);
}
public int dlugoscKolejki()
{
return kolejka.size();
}
public void wypiszProcesy()
{
for(int i=0; i<dlugoscKolejki(); i++)
{
System.out.println("Dlugosc zycia: "+getProces(i).getFaza()+" Moment przybycia: "
+getProces(i).getMoment()+" Numer procesu: " +getProces(i).getNumer());
}
}
}
W niej przechowuję obiekty klasy Proces:
package procesy;
public class Proces {
private int fazaProcesu;
private int numer;
private int momentZgloszenia;
public Proces(int fazaProcesu, int numer, int momentZglosz)
{
this.fazaProcesu=fazaProcesu;
this.numer=numer;
this.momentZgloszenia=momentZglosz;
}
public void setFaza(int faza)
{
fazaProcesu=faza;
}
public int getFaza()
{
return fazaProcesu;
}
public int getNumer()
{
return numer;
}
public int getMoment()
{
return momentZgloszenia;
}
}
Jak widać w klasie proces mam prywatne pole fazaProcesu
. Wartość tego pola zmieniam metodą setFaza()
.
Teraz generuję sobie randomowo dwie listy typu Kolejka
w której przechowuję obiekty klasy Proces
. Robię to tak:
int dlugosc = r.nextInt(max);
int moment = r.nextInt(maxM);
int numer=i;
Proces pr = new Proces(dlugosc, numer, moment);
kolejka1.dodajProces(pr);
kolejka2.dodajProces(pr);
Dlaczego teraz kiedy wywołam setFaza()
kolejka1.proces1.setFaza(x);
prywatne pole fazaProcesu
zmienia mi się w jednej i drugiej kolejce? I jak to poprawić?