package aa08_09.appello2; class Capanna extends Edificio{ private String materiale; private float indiceMateriale; Capanna(String m, int s, int a, float indL) { super(s, a, indL); materiale = m; if (m.equals("legno")) indiceMateriale = 1.1F; else if (m.equals("paglia")) indiceMateriale = 0.9F; else indiceMateriale = 1;; } float valutazione(int v){ float val= v; val *= superficie*indiceLocazione*indiceMateriale; val = val - anni * 10F; return val; } public String toString() { return "capanna di "+materiale+ ", anni "+anni+", valutazione "+valutazione(100); } } class Villa extends Edificio{ int stanze; Villa(int st, int s, int a, float indL) { super(s, a, indL); stanze = st; } float valutazione(int v){ float val = v; val *= superficie*indiceLocazione*stanze*.1F; val = val - anni * 10F; return val; } public String toString() { return "villa di "+stanze+ " stanze, anni "+anni+", valutazione "+valutazione(3000); } } class Grattacielo extends Edificio { int piani; Grattacielo(int p, int s, int a, float indL) { super(s, a, indL); piani = p; } float valutazione(int v){ float val = v; val *= superficie*indiceLocazione*piani*1.1F; val = val - anni * 10F; return val; } public String toString() { return "grattacielo di "+piani+ " piani, anni "+anni+", valutazione "+valutazione(7000); } } class Magazzino extends Edificio { int distanzaStazione; Magazzino(int d, int s, int a, float indL) { super(s, a, indL); distanzaStazione = d; } float valutazione(int v){ float val = v; val *= superficie*indiceLocazione*distanzaStazione/100; val = val - anni * 10F; return val; } public String toString() { return "magazzino, distanza stazione "+distanzaStazione+ " Km, anni "+anni+", valutazione "+valutazione(4000); } } abstract class Edificio { protected int superficie; protected int anni; protected float indiceLocazione; Edificio(int s, int a, float indL){ superficie = s; anni = a; indiceLocazione = indL; } abstract float valutazione(int i); public static void main(String[] args) { Capanna cabina = new Capanna("paglia", 10, 2, 1.5F); Capanna baita = new Capanna("legno", 25, 20, 1.3F); Villa villa = new Villa(7, 120, 15, 1F); Villa vacanze = new Villa(6, 120, 10, 1F); Grattacielo pirelli = new Grattacielo(30, 1000, 45, 1.8F); Grattacielo regione = new Grattacielo(40, 800, 1, 1.8F); Magazzino rinascente = new Magazzino(4, 1000, 35, 2F); System.out.println(cabina); System.out.println(baita); System.out.println(villa); System.out.println(vacanze); System.out.println(pirelli); System.out.println(regione); System.out.println(rinascente); } }