Originariamente inviato da Merlino90X
1 Domanda) All'interno del costruttore espansione devo creare già subito un Vector di tipo carta, sapendo che le carte sono all'interno dell'espansione: ossia devo scrivere così nel costruttore?
private Vector <Carta> carte;
Direi di sì. Se il numero di carte non è noto a priori e non puoi/vuoi usare un ArrayList (simile al Vector, ma più adatto a questi scopi) allora va bene così.
2 Domanda) Se io volessi andare a visualizzare le informazioni di una carta che è contenuta nel Vector carte <Carta> che a sua volta é contenuto nel Vector espansioni <Espansioni>, che tipo di codice devo scrivere?
Ci sono due possibilità:
1) La classe Espansione fornisce un metodo per accedere al Vector di carte:
codice:
class Espansione {
...
private Vector<Carta> carte;
...
public Vector<Carta> getCarte() { return carte; }
}
In questo modo, per accedere ad una carta si fa così:
codice:
espansioni.elementAt( indice_dell_espansione)
.getCarte().elementAt( indice_della_carta ).getNomeCarta();
oppure
Vector<Carta> vc = espansione.elementAt( indice_dell_espansione ).getCarte();
Carta c = vc.elementAt( indice_della_carta );
String nomeCarta = c.getNomeCarta();
2) La classe Espansione potrebbe fornire direttamente un metodo per chiedere una determinata carta, togliendo un passaggio all'utente finale:
codice:
class Espansione {
...
private Vector<Carta> carte;
...
public Carta getCarta(int indice) { return carte.elementAt(indice); }
}
E verrebbe usata in questo modo:
codice:
espansioni.elementAt( indice_dell_espansione ).getCarta( indice_della_carta ).getNomeCarta();
Ciao.