Non mi pare uno degli esercizi migliori su incapsulamento, ereditarietà e poliformismo
Più che altro non vedo granché di utile, il costruttore non deve fare niente (a meno che tu non voglia impostare highestAge a un valore negativo, visto che di default è già messa a 0 senza costruttore), la stessa variabile di istanza highestAge non ha senso di esistere, a meno che non si voglia "conservare" il massimo tra diverse chiamate del metodo findHighestAge (ma è scritto che viene ritornata l'età più alta tra quelle lette dallo Scanner se).
L'unica cosa che devi fare è leggere i valori dallo scanner e trovare il massimo: si parla di valore sentinella, quindi dovrai creare un ciclo infinito (ad esempio while (true) ...) che si interrompe quando il valore inserito è pari a -1.
Quello che devi sapere è quindi:
- Come leggere un valore da scanner
- Come aggiornare il massimo quando dovuto
- Come terminare il ciclo quando trovi il valore sentinella
E' tutto molto semplice, dai un'occhiata sul libro o in rete e prova a scrivere tu la soluzione, poi se non riesci siamo qua
PS: Consiglierei di leggere i numeri da Scanner come stringa, e di provare a fare tu la conversione in numero (vedi Integer.parseInt ()).
Potresti anche inserire un controllo per testare che il numero sia effettivamente un numero (e positivo) e in caso stampare un messaggio d'errore (o meglio lanciare un'eccezione, ma non so se hai già visto le eccezioni e i blocchi try-catch).


Rispondi quotando