Salve a tutti,
mi sono imbattuto in un esercizio java, che simula il mescolamento di un mazzo di 52 carte, ma c'è un punto che non riesco a capire...
posto il codice:
Classe Carta
codice:
public class Carta {
private String valore;
private String seme;
public Carta (String valoreCarta, String semeCarta)
{
valore = valoreCarta;
seme = semeCarta;
}
}
Classe MazzoDiCarte
codice:
import java.util.Random;
public class MazzoDi Carte
{
private Carta mazzo[];
private int prossimaCarta;
private final int NUMERO_DI_CARTE = 52;
private Random numeroCasuale;
public MazzoDiCarte()
{
String valori[] = {"ASSO", "DUE", "TRE", "QUATTRO", "CINQUE", "SEI", "SETTE", "OTTO", "NOVE", "DIECI", "JACK", "DONNA", "RE"};
String semi[] = { "CUORI", "QUADRI", "FIORI", "PICCHE" };
mazzo = new Carta [ NUMERO_DI_CARTE ];
prossimaCarta = 0;
numeroCasuale = new Random();
for ( int cont = 0; cont < mazzo.length; cont++)
mazzo [ cont ]= new Carta (valori [cont % 13], semi [cont / 13]);
}//fine costruttore
//mescola il mazzo di carte
public void mescola()
{
prossimaCarta = 0;
//per ogni carta scegline un'altra a caso e scambiale
for ( int first = 0; first < mazzo.length; first++)
{
int second = numeroCasuale.nextInt ( NUMERO_DI_CARTE );
//scambia la Carta corrente con quella presa casualmente
Carta temp = mazzo [first];
mazzo[first] = mazzo [second];
mazzo [second] = temp;
}//fine for
}
}
Il mio dubbio è questo:
codice:
Carta temp = mazzo [first];
crea una variabile "reference" temp che punta all'indice first dell'array mazzo;
codice:
mazzo[first] = mazzo [second];
assegna all'indice first dell'array mazzo, il valore dell'indice second (che è un numero casuale) dello stesso array;
a questo punto, a rigor di logica (per un neofita come me
)
temp, mazzo[first] e mazzo [second] dovrebbero essere uguali, dato che la variabile "reference" temp, punta allo stesso oggetto di mazzo[first], e, dopo l'istruzione
codice:
mazzo[first] = mazzo [second];
tutti e tre hanno lo stesso valore..
qualcuno sarebbe così gentile da dimostrarmi il contrario????
grazie in anticipo