Chiarimento ...

di il
2 risposte

Chiarimento ...

Salve a tutti.
Credo che per molti questa sia una domanda banale ... comunque eccola qua :
perchè si scrive
private List<Carta> mazzo = new ArrayList<Carta>();
e non
private ArrayList<Carta> mazzo = new ArrayList<Carta>();

Grazie grazie grazie

2 Risposte

  • Re: Chiarimento ...

    Ciao.Allora List è un interfaccia e ArrayList è una classe che la implementa, fanno parte del package java.util. Ad ogni riferimento di interfaccia tu puoi assegnare un riferimento della classe che la implementa, adesso però se nel tuo codice tu scrivi

    ArrayList<Carta> mazzo = new ArrayList<Carta>();

    decidi defnitivamente di utilizzare come tipo lista un ArrayList.Una motivazione è la seguente:se tu decidi ad esempio di non utilizzare più ArrayList perchè hai bisogno di un altro tipo di Lista (ad esempio una LinkedList o Vector) tutto il codice che utilizza la variabile mazzo deve essere rivisto ed aggiornato opportunamente se necessario.Se invece scrivi

    List<Carta> mazzo = new ArrayList<Carta>();

    puoi sempre cambiare l'ArrayList con un tipo che implementa l'interfaccia List senza che questo impatti su tutto il resto del codice (stai utilizzando il polimorfismo).
  • Re: Chiarimento ...

    Grazie infinite Alessandro35, sei stato veramente chiarissimo!
Devi accedere o registrarti per scrivere nel forum
2 risposte