package aa06_07.compitino1; /* Il modello parziale di una automobile, rappresentata dal serbatoio, tramite il livello del carburante, dal tipo e dal colore */ public class Automobile { public static int autoCircolanti; private double serbatoio; private String colore; private String tipo; // costanti per rappresentare il consumo in km/l private static final int ALTO=5; private static final int MEDIO=10; private static final int BASSO=15; /* Costruisce un oggetto automobile con serbatoio vuoto */ public Automobile() { serbatoio = 0.0; colore = ""; tipo = ""; autoCircolanti++; } /* Costruisce un oggetto automobile con un dato livello di serbatoio iniziale */ public Automobile(double dato) { serbatoio = dato; colore = ""; tipo = ""; autoCircolanti++; } /* Costruisce un oggetto automobile con un livello iniziale di gas, un colore e di un dato tipo. @param serbatoioIniziale il livello del serbatoio iniziale @param colore il colore dell'auto @param tipo il modello dell'auto */ public Automobile(double serbatoioIniziale, String tipo, String colore) { this.serbatoio = serbatoioIniziale; this.tipo = tipo; this.colore = colore; autoCircolanti++; } public void setColore(String c) { colore = c; } public void setTipo(String t) { tipo = t; } public void rifornire(double quanto) { this.serbatoio += quanto; } public double consumare(double quanto) { return serbatoio -= quanto; } public double consumare(char t, int km) { double quanto; switch (t) { case 'b': quanto=km/BASSO; break; case 'm': quanto=km/MEDIO; break; case 'a': quanto=km/ALTO; break; default: quanto=km/MEDIO; } return serbatoio -= quanto; } public double livello() { return serbatoio = (serbatoio)<0?0:serbatoio; //* return serbatoio; } public String getTipo() { return tipo; } public String getColore() { return colore; } public void non_si_sa (Automobile that, double tot) { this.serbatoio = that.serbatoio - tot; that.serbatoio = this.serbatoio + tot; } public void trasferisci (Automobile da, double tot) { this.rifornire(tot); da.consumare(tot); } public String toString() { return "Auto " + tipo + "; colore " + colore + "; serbatoio " + this.livello(); } }