Proviamo a ragionare.
Adesso fai finta che tu non hai il file. Il file con le righe non esiste.
La traccia ti dice:
un'auto è contraddistinta da varie caratteristiche come: marca, modello, colore, cilindrata, prezzo.
Quindi sembrerebbe che ci dobbiamo scrivere una classe Auto basata sulle caratteristiche elencate nella traccia.
La classe è un'astrazione dell'auto, a te non importa dove e/o come le caratteristiche siano rappresentate nel "mondo esterno". Per questo ti dico di dimenticare che hai il file, in questo momento non serve.
Quindi la classe Auto come è fatta?
Suppongo dovrà avere i seguenti attributi:
private String marca, modello, colore;
private double cilindrata, prezzo;
Dove assegno i valori degli attributi? Nel costruttore.
Come è fatto il costruttore? Semplice:
public Auto(String marca, String modello, String colore, double cilindrata, double prezzo) {
//controllo che i valori dei parametri
//siano consistenti (es prezzo e cilindrata > 0, ecc)
//assegno i valori agli attributi.
}
Cosa manca ancora alla classe?
Mancano i metodi getters:
public String getMarca() {return marca;}
//uno per ogni attributo
Setters ce ne stanno? Solo per gli attributi che posso cambiare.
un metodo setMarca() non avrebbe senso (non credo che una fiat possa diventare un ford ),
un metodo setPrezzo() o setColore() potrebbero aver senso.
Comunque, manteniamo le cose semplici e non mettiamo nessun metodo setters. In questo modo gli oggetti Auto sono immutabili.
Sembrerebbe tutto ok.
In realtà manca una cosa molto importante. Il metodo equals.
Quand'è che due auto sono uguali (a parte il fatto in cui sono in aliasing) ?
Due auto sono uguali quando hanno la stessa marca, lo stesso modello, lo stesso colore, la stessa cilindrata e lo stesso prezzo.
Ed anche il metodo equals() è fatto.
Dato che ci sei scriviti il toString(), è banale.
Scrivi quindi la classe Auto è postala. Poi cerchiamo di andare avanti.