main
codice:
package fiat;
import java.util.*;

public class Test {

	
	public static void main(String[] args) {
ArrayList<Auto> auto= new ArrayList<Auto>(); 
Random rnd = new Random();

	int tipo = rnd.nextInt(2);
	int targa;
	int kmtotali=0;
	double benzinatotale=0;
	for (int x=0; x<30;x++){
		switch(tipo){
			case 0:
				targa = rnd.nextInt(999999);
				auto.add(new Panda (targa));
			case 1:
				targa = rnd.nextInt(999999);
				auto.add(new Panda (targa));
			case 2:
				targa = rnd.nextInt(999999);
				auto.add(new Panda (targa));
		}}
		
		for (int i=0; i<100;i++){
			int x = rnd.nextInt(29);
			int km = rnd.nextInt(100);          //errore: viaggia tra 10 e 100km
			auto.get(x).viaggia(km);
		}
		for (Auto a : auto){
			kmtotali+=a.getKmpercorsi();
			benzinatotale+=a.getBenzinaConsumata();
		}
		System.out.println("km totali: "+kmtotali+ " benzinaconsumata: "+benzinatotale);
		
	}

}
superclasse
codice:
package fiat;

public abstract class Auto {
	public Auto (int targa){
		
	}
public void viaggia (int km){
	kmpercorsi+=km;
}
private int kmpercorsi=0;

public int getKmpercorsi(){
	return kmpercorsi;
}
 public abstract double getBenzinaConsumata();
}
una delle sottoclassi
codice:
package fiat;

public class Panda extends Auto{
	public Panda (int targa){
		super(targa);
		
	}
	private int kmpercorsi;
	private double benzinaconsumata;
	
	public double getBenzinaConsumata(){
	benzinaconsumata=kmpercorsi/21;
	return benzinaconsumata;
	}

}
lo scopo dell'esercizio è creare a caso 30 auto tra i 3 modelli. Successivamente per 100 volte sceglie un’auto a caso tra quelle create ed invocare il metodo viaggia con una quantità di km compresa tra 10 e 100 km.
Al termine stampare il totale dei km percorsi da tutte le auto e la quantità di benzina consumata.


-le sottoclassi differiscono solo dai km/l per questo ne ho postato una sola.
-ho notato che mi crea solo Panda e non conta la benzina consumata.
-dovrei invocare viaggia tra 10 e 100km, come noterete ho messo un random(100) xke non so come definire il range.
-inoltre se nel for each stampo tutti gli elementi mi trovo 60 auto create quando ne dovrebbero essere 30.

sono sicuro che sono errori stupidi che mi sfuggono da sotto gli occhi