mainsuperclassecodice: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); } }
una delle sottoclassicodice: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(); }
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.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; } }
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![]()

Rispondi quotando