też miałem z czymś takim problem, nie znalazłem nigdzie dokładnej odpowiedzi 'dlaczego tak się dzieje', ale stworzyłem w miare własnych możliwości 'własną wizję' ;). No mniejsza jak to nazwiesz (możliwe, że w Javie tak już po prostu jest, a nigdzie wcześniej o tym nie wyczytałem), powiem Ci co pokazały moje własne testy (jak już doszedłem 'co może się dziać').
O ile nadawanie wartości danemu POLU (zmiennej danego obiektu) na podstawie wartości innego POLA, daje oczekiwany rezultat (bez udziwnień), wszystko jest proste, czyli:
int a=5,b=7; System.out.println(a+" "+b);
a=b; System.out.println(a+" "+b);
a=65; System.out.println(a+" "+b);
b=32; System.out.println(a+" "+b);
a=54; System.out.println(a+" "+b);
taki fragment kodu, dałby Output:
5 7
7 7
65 7
65 32
54 32
wszystko fajnie, wszystko się miło układa. Ale zauważyłem, że w przypadku wykonywania operacji nie na pojedynczym polu, ale na całym obiekcie (albo chociażby tablicy), nie tylko 'nadajemy wartości', ale 'bindujemy' obiekty. Fragment kodu: 'a=b', gdzie a i b to nie 'pola', tylko obiekty, nie nadaje obiektowi a wartości b (czyli innymisłowy, nie nadpisuje wszystkich pól obiektu a wartościami pól obiektu b), tylko wtedy: mamy już jakby (tak to nazwałem): 'jeden obiekt z dwiema referencjami'. Czyli po prostu obiekty są zbindowane, zmieniająć wartości obiektu b, zmienią się wartości obiektu a i na odwrót. Zrobiłem dalszy test (na podstawie tego wyżej, to już dawno było, w każdym razie, wyszło coś takiego):
int[] a={5},b={7}; System.out.println(a[0]+" "+b[0]);
a=b; System.out.println(a[0]+" "+b[0]);
a[0]=65; System.out.println(a[0]+" "+b[0]);
b[0]=32; System.out.println(a[0]+" "+b[0]);
a[0]=54; System.out.println(a[0]+" "+b[0]);
to dałoby Output:
5 7
7 7
65 65
32 32
54 54
, co potwierdziło moją hipotezę ;D. Miłoby było, gdyby odezwał się ktoś kto wie coś w tym temacie więcej niż 'z autopsji', po własnych testach (jak chociażby ta moja odpowiedź).
Nawiązując do Twojego kodu: metoda pobiera tablice 'RD' jako parametr 'szescian', dla którego potem stosujesz 'Pc4 = szescian'. Innymi słowy, bindujesz 'szescian' (czyli tak na prawdę 'RD') z inną tablicą, na której wykonujesz w tej metodzie jakieś działania. Jak to ominąć? Stwórz nową tablicę na podstawie tej 'szescian' (nie Pc4 = szescian, tylko potrójnym 'for'em' przeleć przez wszystkie elementy 'szescian'u' z Pc4[i][j][k] = szescian[i][j][k]) i dopiero na niej działaj.
pozdrawiam