Witam wszystkich.
Mam proste pytanie. Nie umiem zrozumiec czemu tak sie dzieje.
Poniżej prosty przykład:
public class Pracownik {
String imie;
String nazwisko;
int wiek;
}
public class Test {
static void zmien(Pracownik prc){
Pracownik prc2 = new Pracownik();
prc2.imie = "Leszek";
prc2.nazwisko = "Leszkowicz";
prc2.wiek =1500190;
prc = prc2;
//prc.imie = prc2.imie;
//prc.nazwisko = prc2.nazwisko;
//prc.wiek =prc2.wiek;
}
}
public class Firma {
public static void main(String[] args) {
Pracownik[] pracownicy = new Pracownik[3];
String[] imiona = {"Wlodek", "Staszek", "Lukasz"};
String[] nazwiska = {"Zieba", "Kowalski", "Zietek"};
int[] wiek = {45, 34, 56};
for(int i=0; i< pracownicy.length; i++) {
pracownicy[i] = new Pracownik();
pracownicy[i].imie = imiona[i];
pracownicy[i].nazwisko = nazwiska[i];
pracownicy[i].wiek = wiek[i];
}
System.out.println("Pracownicy firmy to:");
for(int i=0; i< pracownicy.length; i++){
Test.zmien(pracownicy[i]);
System.out.println(pracownicy[i].imie+" "+pracownicy[i].nazwisko+", "+pracownicy[i].wiek+" lat");
}
}
}
OUTPUT
Pracownicy firmy to:
Wlodek Zieba, 45 lat
Staszek Kowalski, 34 lat
Lukasz Zietek, 56 lat
Jezeli odkomentuje. w klasie Test zakomentowany kod i zakomentuje prc = prc2;
to dostane wynik:
Pracownicy firmy to:
Leszek Leszkowicz, 1500190 lat
Leszek Leszkowicz, 1500190 lat
Leszek Leszkowicz, 1500190 lat
Pytanie brzmi:
Żeby uzyskać zmiany w obiekcie prc, mogę tylko w sposób odwołania się do poszczególnych elementów tego obiektu. I czemu nie mogę przypisać mu zmian jakie są w obiekcie prc2?