Ciao a tutti,
ho una domanda sulla creazione di oggetti in modo iterativo.
di seguito vi riporto un pezzo di codice del programmino su cui sto lavorando, che consiste nel creare un mazzo di carte con i semi francesi (il classico mazzo da poker texano)
premetto che ho creato una classe Carta che prende in input due stringhe (numero , seme), oppure, senza parametri, ne genera una casuale.
Nella classe MazzoDiCarte invece, l’idea era quella di riempire l’array di oggetti “carte”, creando ogni volta una Carta(numero, seme) nuova. Questo però non è possibile poichè gli oggetti vengono istanziati nello heap solo a tempo di esecuzione:
this.carte[i] = new Carta(tipoNumero[k], tipoSeme[j])
questa istruzione, quindi, anziché creare i 52 oggetti corrispondenti alle altrettante carte classiche, crea un solo oggetto, riempendo l’array “carte" con un’unica carta (ovvero la carta re di picche, che, seguendo l'odine dei for, corrisponde all'ultimo oggetto creato).
inserisco qui in basso l’idea che vorrei implementare, chiaramente non funzionante.
la mia domanda è: non esiste un metodo iterativo che mi permette di creare oggetti (in questo caso carte) diversi?
Per riempire l’array carte sono costretto a scrivere 52 volte “Carta carta = new Carta(numero, seme)"?
public class MazzoDiCarte
{
private Carta[] carte = new Carta[52];
private String[] tipoSeme = new String[] {"cuori", "quadri", "fiori", "picche"};
private String[] tipoNumero = new String[] {"asso", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove", "dieci", "fante", "regina", "re"};
public MazzoDiCarte()
{
//ciclo per riempire l'array "carte"
for (int i = 0; i < carte.length; i++)
{
for (int j = 0; j < tipoSeme.length; j++)
{
for (int k = 0; k < tipoNumero.length; k++)
this.carte[i] = new Carta(tipoNumero[k], tipoSeme[j]);
}
}
}
}