You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
3.2 KiB
Java

package com.company.lösungen;
public class fahrtbuch {
// Basisklasse für alle Fahrzeuge
public class Fahrzeug {
private float kmSatz;
// Konstruktor, der vorgibt, dass ein
// Kilometersatz angegeben werden muss
public Fahrzeug(float kmSatz) {
this.kmSatz = kmSatz;
}
// Getter zur Rückgabe des Kilometersatzes
public float getKmSatz() {
return kmSatz;
}
}
// Klasse Fahrrad, die von der Klasse Fahrzeug erbt
public class Fahrrad extends Fahrzeug {
// Rufe Superklasse auf und setze Fahrpreis auf 1,00 EUR fest
public Fahrrad() {
super(1.00f);
}
}
public class Motorroller extends Fahrzeug {
// Rufe Superklasse auf und setze Fahrpreis auf 2,00 EUR fest
public Motorroller() {
super(2.00f);
}
}
public class Kleintransporter extends Fahrzeug {
// Rufe Superklasse auf und setze Fahrpreis auf 5,50 EUR fest
public Kleintransporter() {
super(5.50f);
}
}
// Klasse, die eine Fahrt repräsentiert
public class Fahrt {
private Fahrzeug fahrzeug;
private float km;
// Konstruktor, der die Angabe eines Fahrzeugs
// und die gefahrenen Kilometer vorschreibt.
public Fahrt(Fahrzeug fahrzeug, float km) {
this.fahrzeug = fahrzeug;
this.km = km;
}
// Methode zur Berechnung des Fahrpreises
// (Kilometersatz * Kilometer)
public float getPrice() {
return fahrzeug.getKmSatz() * km;
}
}
// Klasse, die ein Fahrtenbuch repräsentiert
public class Fahrtenbuch {
private Fahrt[] fahrten;
// Konstruktor, der die Fahrten initialisiert
public Fahrtenbuch() {
this.fahrten = new Fahrt[0];
}
// Öffentliche Methode zum Hinzufügen einer Fahrt,
// die als Fahrtobjekt an die Methode übergeben wird
public void addFahrt(Fahrt fahrt) {
Fahrt[] fahrtenNew = new Fahrt[fahrten.length + 1];
for (int i = 0; i < fahrten.length; i = i + 1) {
fahrtenNew[i] = fahrten[i];
}
fahrtenNew[fahrtenNew.length - 1] = fahrt;
fahrten = fahrtenNew;
}
// Getter-Methode, die den Preis zurückliefert
public float getPrice() {
// Gesamtpreis
float price = 0.0f;
// Gehe jede Fahrt durch
for (int i = 0; i < fahrten.length; i = i + 1) {
// Berechne Preis
price = price + fahrten[i].getPrice();
}
return price;
}
}
// Startpunkt des Hauptprogramms
// Hier werden die implementierten Klassen zu Demonstrations- und
// Testzwecken instanziiert und verwendet.
public void setup() {
// Erstelle Fahrtenbuch
Fahrtenbuch fb = new Fahrtenbuch();
// Füge Fahrten hinzu
fb.addFahrt(new Fahrt(new Fahrrad(), 3f));
fb.addFahrt(new Fahrt(new Motorroller(), 7.12f));
fb.addFahrt(new Fahrt(new Kleintransporter(), 56.11f));
// Berechne Gesamtpreis
System.out.println(fb.getPrice());
}
}