Salve,
vi riporto la soluzione di un metodo che stavo vedendo.
Ovvero, questo:
un metodo void addLibro(String titolo, String autore) che aggiunge un libro a quelli disponi bili. Se nella biblioteca e' gia' presente un altro libro con stesso titolo ed autore, il numero di copie viene incrementato di uno. In caso contrario, una nuova istanza di un oggetto della classe libro con un numero di copie pari ad uno viene inserito nella lista.
ed eccolo:
public void addLibro(String titolo, String autore)
{
Libro old = getLibro(titolo, autore);
if (old == null)
libri.add(new Libro(titolo, autore, 1));
else
old.setNumeroCopie( old.getNumeroCopie() + 1);
}
Non vi riporto tutta la classe perché è parecchio lunga e non credo serva per la mia domanda, comunque:
getLibro: ritorna null se titolo ed autore non corrispondono per nessun libro all'interno di
libri (che è un hashSet).
Libro(titolo, autore, 1): costruttore della classe
Libro che crea un nuovo libro da aggiungere all'hashSet con 1 che è il numero di copie.
setNumeroCopie e
getNumeroCopie rispettivamente setta/ritorna numero di copie.
Nel testo di sopra, viene chiesto "
Se nella biblioteca e' gia' presente un altro libro con stesso titolo ed autore, il numero di copie viene incrementato di uno".
Mi riferisco, quindi a questo frammento di codice:
else
old.setNumeroCopie( old.getNumeroCopie() + 1);
Quando io vado ad incrementare il numero di copie di old di uno, io sto incrementando il numero di copie di un oggetto Libro (old, appunto) che non appartiene all'insieme Libri. Vero? Cioè, io non sto incrementando il numero di copie di un oggetto che appartiene all'insieme Libri, ma di un oggetto che ho creato lì, nel metodo. O sbaglio?