Salve a tutti.
Ho il seguente problema:
Per un'esercitazione, devo fare un progetto per la gestione di un autosalone.
Le specifiche di tale progetto sono le seguenti:
- Definire una classe Auto avente i seguenti parametri:
- Marca e modello
- anno di immatricolazione
- km percorsi
- prezzo dell'auto.
- Definire i vari metodi.
Di seguito il codice della classe auto:
public class Auto {
public String marcaModello;
public int annoImmatricolazione;
public int kmPercorsi;
public double prezzo;
public Auto(String marcaModello, int annoImmatricolazione, int kmPercorsi, double prezzo){
this.marcaModello = marcaModello;
this.annoImmatricolazione = annoImmatricolazione;
this.kmPercorsi = kmPercorsi;
this.prezzo = prezzo;
}
public void stampa(){
System.out.println("Marca e Modello: "+marcaModello);
System.out.println("Anno Immatricolazione: "+annoImmatricolazione);
System.out.println("km percorsi: "+kmPercorsi);
System.out.println("prezzo: "+prezzo);
}
public void modificaPrezzo(double nuovoPrezzo){
this.prezzo = nuovoPrezzo;
}
public double getPrezzo(){
return prezzo;
}
public int getAnnoImmatricolazione(){
return annoImmatricolazione;
}
public int getKmPercorsi(){
return kmPercorsi;
}
}
Mi si chiede inoltre di implementare una classe ListinoAuto che gestisce un arraylist di oggetti della classe Auto.
I metodi da implementare sono:
- aggiungiAuto per inserire un oggetto Auto nell'arraylist
-contaAutoNuove per contare il numero di auto che abbiano percorso zero km
-autoPiùCostosa per stabilire l'auto con il prezzo maggiore.
Di seguito il codice della classe:
import java.util.ArrayList;
public class ListinoAuto {
public ArrayList<Auto> listino;
public ListinoAuto(){
listino = new ArrayList<Auto>();
}
public void aggiungi(Auto a){
listino.add(a);
}
public int contaAutoNuove(){
int contatore = 0;
for(int i = 0; i < listino.size(); i++){
if((listino.get(i)).getKmPercorsi() == 0)
contatore = contatore++;
}
return contatore;
}
public Auto autoPiuCostosa(){
Auto autoMax = listino.get(0);
for(int i = 0; i < listino.size(); i++){
if(((listino.get(i)).getPrezzo()) > autoMax.getPrezzo() )
autoMax = listino.get(i);
}
return autoMax;
}
}
I metodi aggiungi e autoPiuCostosa funzionano bene. Il problema sta nel metodo contaAutoNuove, il quale mi restituisce sempre il valore 0 anche se ho inserito oggetti Auto con numero di km > 0
Vi posto anche il codice della classe di test:
package Fond2;
import java.util.ArrayList;
public class ProvaListino {
public static void main(String[] args) {
ListinoAuto listino = new ListinoAuto();
Auto a1 = new Auto("Alfa Romeo Giulia 1.4", 2017, 0, 7000);
Auto a2 = new Auto("Alfa Romeo Giulietta 1.7 TdCi", 2015,35000, 9500);
Auto a3 = new Auto("Ford Focus 1.5 Turbo IE", 2008, 118000, 6800);
Auto a4 = new Auto("Mercedes Classe A", 2017, 150, 11000);
Auto a5 = new Auto("Audi A4 Tdi", 2016, 0, 16500);
listino.aggiungi(a1);
listino.aggiungi(a2);
listino.aggiungi(a3);
listino.aggiungi(a4);
listino.aggiungi(a5);
System.out.print("L'auto più costosa è: ");
(listino.autoPiuCostosa()).stampa();
System.out.println(listino.contaAutoNuove());
}
}
Potete darmi una mano?
Grazie