Java – Autoveicoli

Classe Veicolo:

abstract public class Veicolo {
    
    private String marca;
    private String modello;
    private String targa;
    protected int anno;
    protected int potenza;
    private int passeggeri;
    protected String alimentazione;

    public Veicolo(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        this.marca = marca;
        this.modello = modello;
        this.targa = targa;
        this.anno = anno;
        this.potenza = potenza;
        this.passeggeri = passeggeri;
        this.alimentazione = "";
    }

    public String getAlimentazione() {
        return alimentazione;
    }

    public int getAnno() {
        return anno;
    }

    public String getMarca() {
        return marca;
    }

    public String getModello() {
        return modello;
    }

    public int getPasseggeri() {
        return passeggeri;
    }

    public int getPotenza() {
        return potenza;
    }

    public String getTarga() {
        return targa;
    }

    public String toString() {
        String s;
        s = targa+","+marca+","+modello+","+passeggeri+","+anno+","+potenza+","+alimentazione;
        return s;
    }
           
    abstract double getTassa(int anno);
    
}

Classe AutoveicoloTradizionale:

abstract public class AutoveicoloTradizionale extends Veicolo {
    
    static double EuroPerHP = 2.5;

    public AutoveicoloTradizionale(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
    }

    double getTassa(int anno) {
        return EuroPerHP*super.getPotenza();
    }

}

Classe AutoveicoloGas:

abstract public class AutoveicoloGas extends Veicolo {
       
    public AutoveicoloGas(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
    }

}

Classe AutoveicoloElettrico:

public class AutoveicoloElettrico extends Veicolo {
      
    public AutoveicoloElettrico(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "elettrica";
    }

    double getTassa(int anno) {
        return 0.0;
    }

}

Classe Motoveicolo

public class Motoveicolo extends Veicolo {
    
   static double EuroPerHP = 1.5;

    public Motoveicolo(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "benzina";
    }

    double getTassa(int anno) {
        return Motoveicolo.EuroPerHP*super.getPotenza();
    }

}

Classe AutoveicoloBenzina:

import java.util.*;

public class AutoveicoloBenzina extends AutoveicoloTradizionale {
    
    public AutoveicoloBenzina(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "benzina";
    }

}

Classe AutoveicoloGasolio:

public class AutoveicoloGasolio extends AutoveicoloTradizionale {
    
    public AutoveicoloGasolio(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "gasolio";
    }

}

Classe AutoveicoloGPL:

public class AutoveicoloGPL extends AutoveicoloGas {
    
    static double EuroPerHP = 0.5;
    
    public AutoveicoloGPL(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "GPL";
    }

    double getTassa(int anno) {
        double tassa = 0.0;
        
        if ((anno-super.anno)>5)
          tassa = EuroPerHP*super.getPotenza(); 
        return tassa;  
    }
}

Classe AutoveicoloIdrogeno:

public class AutoveicoloIdrogeno extends AutoveicoloGas {
       
    static double EuroPerHPanno = 0.1;

    public AutoveicoloIdrogeno(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "idrogeno";
    }

    double getTassa(int anno) {
        return (anno - super.getAnno())*super.getPotenza()*EuroPerHPanno;
    }

}

Classe AutoveicoloMetano:

public class AutoveicoloMetano extends AutoveicoloGas {
    
    static double EuroPerHP = 0.5;
    
    public AutoveicoloMetano(String marca, String modello, String targa, int anno, int potenza, int passeggeri) {
        super(marca, modello, targa, anno, potenza, passeggeri);
        super.alimentazione = "metano";
    }

    double getTassa(int anno) {
        double tassa = 0.0;
        
        if ((anno-super.anno)>5)
          tassa = EuroPerHP*super.getPotenza(); 
        return tassa;  
    }
}

Classe TestVeicolo:

import java.util.*;

public class TestVeicolo {
        
    static public void main(String args[]) {
        Veicolo veicoli[] = new Veicolo[10];
        int anno = 2010;

        veicoli[0] = new Motoveicolo("BMW","1000","LI123",2000,100,1);
        veicoli[1] = new AutoveicoloBenzina("Mercedes","A","PI123",2002,150,4);
        veicoli[2] = new AutoveicoloGasolio("Citroen","Picasso","LI456",2008,120,6);
        veicoli[3] = new AutoveicoloMetano("FIAT","Panda","PI456",2001,70,3);
        veicoli[4] = new AutoveicoloGPL("Volskwagen","Golf","LI789",2002,90,4);
        veicoli[5] = new AutoveicoloIdrogeno("Mercedes","B","PI789",2008,100,4);
        veicoli[6] = new AutoveicoloElettrico("Toyota","Prius","LI000",2009,110,4);
        
        for (int i = 0; i < 7; i++) {
            System.out.println(veicoli[i].toString());
            System.out.println(veicoli[i].getTassa(anno));
            System.out.println();
        }
    }

You may also like...


x

Leggi anche...

Java - Autonoleggio
Classe Veicolo: [code lang="java"] //import java.io.Serializable; public class Veicolo /*implements Serializable*/{ private String targa...
Java - Classe Potenza
Classe Potenza: [code lang="java"] class potenza{ private int b;//attributo potenza(int base){//costruttore b=base; }//fine costrutto...
Java - Classe Libro/Libreria/Biblioteca
Classe Libro: [code lang="java"] public class Libro { // attributi String titolo, genere, autore; // costruttore Libro(String titolo,...
powered by RelatedPosts