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
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());
|
|
}
|
|
}
|