02_RepetitionInheritance

Aufgaben

Autovermietung Bootsverleih Campingplatz Catering Druckerei Fahrradverleih Fahrschule Fitnessstudio Flugschule Fotoshooting Hotel Hundeschule IT-Support Kino Kochschule Lieferdienst Museum Musikschule Nachhilfeinstitut Paketversand Parkplatz Reinigungsfirma Reitschule Schwimmschule Skischule Sprachschule Taxiunternehmen Veranstaltung Webdesign Werkstatt

1. Fitnessstudio

Fitnessstudio

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             Training             │
├──────────────────────────────────┤
│ - dauer: int                     │
│ - bezeichnung: String            │
│ - trainer: String                │
├──────────────────────────────────┤
│ + Training(...)                  │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProEinheit(): double     │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      PersonalTraining      │   │       GruppenTraining      │
├────────────────────────────┤   ├────────────────────────────┤
│ - preisProEinheit: float   │   │ - gesamtPreis: float       │
├────────────────────────────┤   ├────────────────────────────┤
│ + PersonalTraining(...)    │   │ + GruppenTraining(...)     │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Training

Training(dauer, bezeichnung, trainer)

Es wird ein Training mit der übergebenen Dauer, der Bezeichnung und dem Namen der Trainer:in erzeugt.

get- und set-Methoden

Die folgenden Überprüfungen der Übergabeparameter müssen erfolgen:

  • Die Dauer muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

kostenGesamt(): float

Die Methode ist hier abstrakt und muss in den ableitenden Klassen implementiert werden.

kostenProEinheit(): double

Die Methode liefert die Kosten pro Trainingseinheit zurück. Die Gesamtkosten werden von der Methode kostenGesamt() geliefert. Die Anzahl der Trainingseinheiten enthält das Attribut dauer.

toString(): String

Die Methode liefert alle Informationen eines Trainings zurück.

Beispiel:

4 Einheiten, Bezeichnung: Krafttraining
Trainer:in: Julia
Kosten: 160.0 EUR, Kosten pro Einheit: 40.0 EUR

PersonalTraining

PersonalTrainings sind Trainings.

PersonalTraining(dauer, bezeichnung, trainer, preisProEinheit)

Es wird ein PersonalTraining mit den übergebenen Attribut-Werten der Superklasse Training und dem übergebenen Preis pro Einheit erzeugt.

Der Wert von preisProEinheit muss größer als 0.0 sein.

kostenGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Die Kosten eines PersonalTrainings sind die Dauer des Trainings multipliziert mit dem Preis pro Einheit.

toString(): String

Die Methode liefert alle Informationen eines PersonalTrainings beginnend mit dem Text PersonalTraining: zurück.

GruppenTraining

GruppenTrainings sind Trainings.

GruppenTraining(dauer, bezeichnung, trainer, gesamtPreis)

Es wird ein GruppenTraining mit den übergebenen Attribut-Werten der Superklasse und dem übergebenen Gesamtpreis erzeugt.

Der Wert von gesamtPreis muss größer als 0.0 sein.

kostenGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Die Kosten eines GruppenTrainings sind der Wert des Attributs gesamtPreis.

toString(): String

Die Methode liefert alle Informationen eines GruppenTrainings beginnend mit dem Text GruppenTraining: zurück.


2. Sprachschule

Sprachschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            SprachKurs            │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - sprache: String                │
│ - lehrkraft: String              │
├──────────────────────────────────┤
│ + SprachKurs(...)                │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProStunde(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│         EinzelKurs         │   │        IntensivKurs        │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelKurs(...)          │   │ + IntensivKurs(...)        │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse SprachKurs

SprachKurs(stunden, sprache, lehrkraft)

Es wird ein Sprachkurs mit der übergebenen Anzahl an Stunden, der Sprache und dem Namen der Lehrkraft erzeugt.

get- und set-Methoden

Die folgenden Überprüfungen der Übergabeparameter müssen erfolgen:

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

preisGesamt(): float

Die Methode ist hier abstrakt und muss in den ableitenden Klassen implementiert werden.

preisProStunde(): double

Die Methode liefert den Preis pro Unterrichtsstunde zurück. Der Gesamtpreis wird von der Methode preisGesamt() geliefert. Die Anzahl der Stunden enthält das Attribut stunden.

toString(): String

Die Methode liefert alle Informationen eines Sprachkurses zurück.

Beispiel:

10 Stunden, Sprache: Spanisch
Lehrkraft: Maria
Preis: 300.0 EUR, Preis pro Stunde: 30.0 EUR

EinzelKurs

EinzelKurse sind SprachKurse.

EinzelKurs(stunden, sprache, lehrkraft, stundenPreis)

Es wird ein EinzelKurs mit den übergebenen Attribut-Werten der Superklasse SprachKurs und dem übergebenen Stundenpreis erzeugt.

Der Wert von stundenPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Preis eines EinzelKurses ist die Anzahl der Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Methode liefert alle Informationen eines EinzelKurses beginnend mit dem Text EinzelKurs: zurück.

IntensivKurs

IntensivKurse sind SprachKurse.

IntensivKurs(stunden, sprache, lehrkraft, paketPreis)

Es wird ein IntensivKurs mit den übergebenen Attribut-Werten der Superklasse und dem übergebenen Paketpreis erzeugt.

Der Wert von paketPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Preis eines IntensivKurses ist der Wert des Attributs paketPreis.

toString(): String

Die Methode liefert alle Informationen eines IntensivKurses beginnend mit dem Text IntensivKurs: zurück.


3. Hotel

Hotel

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             Buchung              │
├──────────────────────────────────┤
│ - naechte: int                   │
│ - gast: String                   │
│ - zimmer: String                 │
├──────────────────────────────────┤
│ + Buchung(...)                   │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProNacht(): double        │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      StandardBuchung       │   │      PauschalBuchung       │
├────────────────────────────┤   ├────────────────────────────┤
│ - nachtPreis: float        │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + StandardBuchung(...)     │   │ + PauschalBuchung(...)     │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Buchung

Buchung(naechte, gast, zimmer)

Es wird eine Buchung mit der übergebenen Anzahl der Nächte, dem Namen des Gastes und der Zimmerbezeichnung erzeugt.

get- und set-Methoden

Die folgenden Überprüfungen der Übergabeparameter müssen erfolgen:

  • Die Anzahl der Nächte muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

preisGesamt(): float

Die Methode ist hier abstrakt und muss in den ableitenden Klassen implementiert werden.

preisProNacht(): double

Die Methode liefert den Preis pro Nacht zurück. Der Gesamtpreis wird von der Methode preisGesamt() geliefert. Die Anzahl der Nächte enthält das Attribut naechte.

toString(): String

Die Methode liefert alle Informationen einer Buchung zurück.

Beispiel:

3 Nächte, Zimmer: Doppelzimmer
Gast: Anna
Preis: 360.0 EUR, Preis pro Nacht: 120.0 EUR

StandardBuchung

StandardBuchungen sind Buchungen.

StandardBuchung(naechte, gast, zimmer, nachtPreis)

Es wird eine StandardBuchung mit den übergebenen Attribut-Werten der Superklasse Buchung und dem übergebenen Preis pro Nacht erzeugt.

Der Wert von nachtPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Gesamtpreis einer StandardBuchung ist die Anzahl der Nächte multipliziert mit dem Preis pro Nacht.

toString(): String

Die Methode liefert alle Informationen einer StandardBuchung beginnend mit dem Text StandardBuchung: zurück.

PauschalBuchung

PauschalBuchungen sind Buchungen.

PauschalBuchung(naechte, gast, zimmer, paketPreis)

Es wird eine PauschalBuchung mit den übergebenen Attribut-Werten der Superklasse und dem übergebenen Paketpreis erzeugt.

Der Wert von paketPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Gesamtpreis entspricht dem Wert des Attributs paketPreis.

toString(): String

Die Methode liefert alle Informationen einer PauschalBuchung beginnend mit dem Text PauschalBuchung: zurück.


4. Autovermietung

Autovermietung

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│              Miete               │
├──────────────────────────────────┤
│ - tage: int                      │
│ - fahrzeug: String               │
│ - kunde: String                  │
├──────────────────────────────────┤
│ + Miete(...)                     │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProTag(): double          │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│         TagesMiete         │   │       PauschalMiete        │
├────────────────────────────┤   ├────────────────────────────┤
│ - tagesPreis: float        │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + TagesMiete(...)          │   │ + PauschalMiete(...)       │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Miete

Miete(tage, fahrzeug, kunde)

Es wird eine Miete mit der übergebenen Anzahl der Tage, der Fahrzeugbezeichnung und dem Namen der Kund:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Tage muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

preisGesamt(): float

Die Methode ist hier abstrakt und muss in den ableitenden Klassen implementiert werden.

preisProTag(): double

Die Methode liefert den Preis pro Miettag zurück. Der Gesamtpreis wird von der Methode preisGesamt() geliefert.

toString(): String

Beispiel:

5 Tage, Fahrzeug: VW Golf
Kund:in: Martin
Preis: 350.0 EUR, Preis pro Tag: 70.0 EUR

TagesMiete

TagesMieten sind Mieten.

TagesMiete(tage, fahrzeug, kunde, tagesPreis)

Der Wert von tagesPreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Tage multipliziert mit dem Tagespreis.

toString(): String

Die Ausgabe beginnt mit TagesMiete:.

PauschalMiete

PauschalMieten sind Mieten.

PauschalMiete(tage, fahrzeug, kunde, pauschale)

Der Wert von pauschale muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PauschalMiete:.


5. Musikschule

Musikschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│         MusikUnterricht          │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - instrument: String             │
│ - lehrkraft: String              │
├──────────────────────────────────┤
│ + MusikUnterricht(...)           │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      EinzelUnterricht      │   │      GruppenUnterricht     │
├────────────────────────────┤   ├────────────────────────────┤
│ - einzelPreis: float       │   │ - kursPreis: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelUnterricht(...)    │   │ + GruppenUnterricht(...)   │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse MusikUnterricht

MusikUnterricht(einheiten, instrument, lehrkraft)

Es wird ein Musikunterricht mit der übergebenen Anzahl der Einheiten, dem Instrument und dem Namen der Lehrkraft erzeugt.

get- und set-Methoden

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProEinheit(): double

Die Methode liefert den Preis pro Unterrichtseinheit zurück. Der Gesamtpreis wird von der Methode preisGesamt() geliefert.

toString(): String

Beispiel:

8 Einheiten, Instrument: Klavier
Lehrkraft: Thomas
Preis: 320.0 EUR, Preis pro Einheit: 40.0 EUR

EinzelUnterricht

EinzelUnterrichte sind MusikUnterrichte.

EinzelUnterricht(einheiten, instrument, lehrkraft, einzelPreis)

Der Einzelpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Einzelpreis.

toString(): String

Die Ausgabe beginnt mit EinzelUnterricht:.

GruppenUnterricht

GruppenUnterrichte sind MusikUnterrichte.

GruppenUnterricht(einheiten, instrument, lehrkraft, kursPreis)

Der Kurspreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Kurspreis.

toString(): String

Die Ausgabe beginnt mit GruppenUnterricht:.


6. Nachhilfeinstitut

Nachhilfeinstitut

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Nachhilfe             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - fach: String                   │
│ - lehrer: String                 │
├──────────────────────────────────┤
│ + Nachhilfe(...)                 │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       EinzelNachhilfe      │   │      GruppenNachhilfe      │
├────────────────────────────┤   ├────────────────────────────┤
│ - preis: float             │   │ - gesamt: float            │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelNachhilfe(...)     │   │ + GruppenNachhilfe(...)    │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Nachhilfe

Nachhilfe(stunden, fach, lehrer)

Es wird eine Nachhilfe mit der übergebenen Anzahl der Stunden, dem Fach und dem Namen der Lehrer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Stunde zurück.

toString(): String

Beispiel:

6 Stunden, Fach: Mathematik
Lehrer:in: Stefan
Kosten: 180.0 EUR, Kosten pro Stunde: 30.0 EUR

EinzelNachhilfe

EinzelNachhilfen sind Nachhilfen.

EinzelNachhilfe(stunden, fach, lehrer, preis)

Der Preis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind die Anzahl der Stunden multipliziert mit dem Preis.

toString(): String

Die Ausgabe beginnt mit EinzelNachhilfe:.

GruppenNachhilfe

GruppenNachhilfen sind Nachhilfen.

GruppenNachhilfe(stunden, fach, lehrer, gesamt)

Der Gesamtpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Wert des Attributs gesamt.

toString(): String

Die Ausgabe beginnt mit GruppenNachhilfe:.


7. Parkplatz

Parkplatz

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          ParkVorgang             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - kennzeichen: String            │
│ - parkplatz: String              │
├──────────────────────────────────┤
│ + ParkVorgang(...)               │
│ + get-/set-Methoden              │
│ + gebuehrGesamt(): float         │
│ + gebuehrProStunde(): double     │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│         KurzParker         │   │         TagesParker        │
├────────────────────────────┤   ├────────────────────────────┤
│ - tarif: float             │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + KurzParker(...)          │   │ + TagesParker(...)         │
│ + gebuehrGesamt(): float   │   │ + gebuehrGesamt(): float   │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse ParkVorgang

ParkVorgang(stunden, kennzeichen, parkplatz)

Es wird ein Parkvorgang mit der übergebenen Anzahl der Stunden, dem Kennzeichen und der Parkplatzbezeichnung erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

gebuehrGesamt(): float

Die Methode ist abstrakt.

gebuehrProStunde(): double

Die Methode liefert die Gebühr pro Stunde zurück.

toString(): String

Beispiel:

3 Stunden, Kennzeichen: W-12345
Parkplatz: Zentrum
Gebühr: 9.0 EUR, Gebühr pro Stunde: 3.0 EUR

KurzParker

KurzParker sind ParkVorgänge.

KurzParker(stunden, kennzeichen, parkplatz, tarif)

Der Tarif muss größer als 0.0 sein.

gebuehrGesamt(): float

Die Gesamtgebühr ist die Anzahl der Stunden multipliziert mit dem Tarif.

toString(): String

Die Ausgabe beginnt mit KurzParker:.

TagesParker

TagesParker sind ParkVorgänge.

TagesParker(stunden, kennzeichen, parkplatz, pauschale)

Die Pauschale muss größer als 0.0 sein.

gebuehrGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit TagesParker:.


8. Fahrradverleih

Fahrradverleih

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          FahrradMiete            │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - fahrrad: String                │
│ - kunde: String                  │
├──────────────────────────────────┤
│ + FahrradMiete(...)              │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProStunde(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│        StundenMiete        │   │         PaketMiete         │
├────────────────────────────┤   ├────────────────────────────┤
│ - preis: float             │   │ - paket: float             │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenMiete(...)        │   │ + PaketMiete(...)          │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse FahrradMiete

FahrradMiete(stunden, fahrrad, kunde)

Es wird eine FahrradMiete mit der übergebenen Anzahl der Stunden, der Fahrradbezeichnung und dem Namen der Kund:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProStunde(): double

Die Methode liefert den Preis pro Stunde zurück.

toString(): String

Beispiel:

5 Stunden, Fahrrad: Trekkingrad
Kund:in: Sarah
Preis: 50.0 EUR, Preis pro Stunde: 10.0 EUR

StundenMiete

StundenMieten sind FahrradMieten.

StundenMiete(stunden, fahrrad, kunde, preis)

Der Preis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Stunden multipliziert mit dem Preis.

toString(): String

Die Ausgabe beginnt mit StundenMiete:.

PaketMiete

PaketMieten sind FahrradMieten.

PaketMiete(stunden, fahrrad, kunde, paket)

Der Paketpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit PaketMiete:.


9. Kino

Kino

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          Vorstellung             │
├──────────────────────────────────┤
│ - tickets: int                   │
│ - film: String                   │
│ - saal: String                   │
├──────────────────────────────────┤
│ + Vorstellung(...)               │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProTicket(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│    NormalVorstellung       │   │    SonderVorstellung       │
├────────────────────────────┤   ├────────────────────────────┤
│ - ticketPreis: float       │   │ - gruppenPreis: float      │
├────────────────────────────┤   ├────────────────────────────┤
│ + NormalVorstellung(...)   │   │ + SonderVorstellung(...)   │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Vorstellung

Vorstellung(tickets, film, saal)

Es wird eine Vorstellung mit der übergebenen Anzahl der Tickets, dem Film und dem Saal erzeugt.

get- und set-Methoden

  • Die Anzahl der Tickets muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProTicket(): double

Die Methode liefert den Preis pro Ticket zurück.

toString(): String

Beispiel:

4 Tickets, Film: Inception
Saal: 3
Preis: 48.0 EUR, Preis pro Ticket: 12.0 EUR

NormalVorstellung

NormalVorstellungen sind Vorstellungen.

NormalVorstellung(tickets, film, saal, ticketPreis)

Der Ticketpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Ticketanzahl multipliziert mit dem Ticketpreis.

toString(): String

Die Ausgabe beginnt mit NormalVorstellung:.

SonderVorstellung

SonderVorstellungen sind Vorstellungen.

SonderVorstellung(tickets, film, saal, gruppenPreis)

Der Gruppenpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Gruppenpreis.

toString(): String

Die Ausgabe beginnt mit SonderVorstellung:.


10. Museum

Museum

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Fuehrung              │
├──────────────────────────────────┤
│ - teilnehmer: int                │
│ - thema: String                  │
│ - guide: String                  │
├──────────────────────────────────┤
│ + Fuehrung(...)                  │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProPerson(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      PersonenFuehrung      │   │       PrivatFuehrung       │
├────────────────────────────┤   ├────────────────────────────┤
│ - preis: float             │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + PersonenFuehrung(...)    │   │ + PrivatFuehrung(...)      │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Fuehrung

Fuehrung(teilnehmer, thema, guide)

Es wird eine Führung mit der übergebenen Anzahl der Teilnehmer:innen, dem Thema und dem Namen des Guides erzeugt.

get- und set-Methoden

  • Die Anzahl der Teilnehmer:innen muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProPerson(): double

Die Methode liefert den Preis pro Person zurück.

toString(): String

Beispiel:

10 Teilnehmer:innen, Thema: Römerzeit
Guide: Anna
Preis: 100.0 EUR, Preis pro Person: 10.0 EUR

PersonenFuehrung

PersonenFuehrungen sind Fuehrungen.

PersonenFuehrung(teilnehmer, thema, guide, preis)

Der Preis pro Person muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Teilnehmer:innen multipliziert mit dem Preis.

toString(): String

Die Ausgabe beginnt mit PersonenFuehrung:.

PrivatFuehrung

PrivatFuehrungen sind Fuehrungen.

PrivatFuehrung(teilnehmer, thema, guide, pauschale)

Die Pauschale muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PrivatFuehrung:.


11. Schwimmschule

Schwimmschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          SchwimmKurs             │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - niveau: String                 │
│ - trainer: String                │
├──────────────────────────────────┤
│ + SchwimmKurs(...)               │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│    EinzelSchwimmkurs       │   │    GruppenSchwimmkurs      │
├────────────────────────────┤   ├────────────────────────────┤
│ - einzelPreis: float       │   │ - kursPreis: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelSchwimmkurs(...)   │   │ + GruppenSchwimmkurs(...)  │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse SchwimmKurs

SchwimmKurs(einheiten, niveau, trainer)

Es wird ein Schwimmkurs mit der übergebenen Anzahl der Einheiten, dem Niveau und dem Namen der Trainer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProEinheit(): double

Die Methode liefert den Preis pro Einheit zurück.

toString(): String

Beispiel:

6 Einheiten, Niveau: Anfänger
Trainer:in: Paul
Preis: 180.0 EUR, Preis pro Einheit: 30.0 EUR

EinzelSchwimmkurs

EinzelSchwimmkurse sind SchwimmKurse.

EinzelSchwimmkurs(einheiten, niveau, trainer, einzelPreis)

Der Einzelpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Einzelpreis.

toString(): String

Die Ausgabe beginnt mit EinzelSchwimmkurs:.

GruppenSchwimmkurs

GruppenSchwimmkurse sind SchwimmKurse.

GruppenSchwimmkurs(einheiten, niveau, trainer, kursPreis)

Der Kurspreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Kurspreis.

toString(): String

Die Ausgabe beginnt mit GruppenSchwimmkurs:.


12. Skischule

Skischule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             SkiKurs              │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - niveau: String                 │
│ - skiLehrer: String              │
├──────────────────────────────────┤
│ + SkiKurs(...)                   │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       PrivatSkiKurs        │   │      GruppenSkiKurs        │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - kursPreis: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + PrivatSkiKurs(...)       │   │ + GruppenSkiKurs(...)      │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse SkiKurs

SkiKurs(stunden, niveau, skiLehrer)

Es wird ein SkiKurs mit der übergebenen Anzahl der Stunden, dem Niveau und dem Namen der Skilehrer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Stunde zurück.

toString(): String

Beispiel:

4 Stunden, Niveau: Fortgeschritten
Skilehrer:in: Lukas
Kosten: 240.0 EUR, Kosten pro Stunde: 60.0 EUR

PrivatSkiKurs

PrivatSkiKurse sind SkiKurse.

PrivatSkiKurs(stunden, niveau, skiLehrer, stundenPreis)

Der Stundenpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind die Anzahl der Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Ausgabe beginnt mit PrivatSkiKurs:.

GruppenSkiKurs

GruppenSkiKurse sind SkiKurse.

GruppenSkiKurs(stunden, niveau, skiLehrer, kursPreis)

Der Kurspreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Kurspreis.

toString(): String

Die Ausgabe beginnt mit GruppenSkiKurs:.


13. Fotoshooting

Fotoshooting

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             Shooting             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - kunde: String                  │
│ - fotograf: String               │
├──────────────────────────────────┤
│ + Shooting(...)                  │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       StundenShooting      │   │        PaketShooting       │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenShooting(...)     │   │ + PaketShooting(...)       │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Shooting

Shooting(stunden, kunde, fotograf)

Es wird ein Shooting mit der übergebenen Anzahl der Stunden, dem Namen der Kund:in und dem Namen der Fotograf:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Stunde zurück.

toString(): String

Beispiel:

3 Stunden, Kund:in: Eva
Fotograf:in: Michael
Kosten: 300.0 EUR, Kosten pro Stunde: 100.0 EUR

StundenShooting

StundenShootings sind Shootings.

StundenShooting(stunden, kunde, fotograf, stundenPreis)

Der Stundenpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Ausgabe beginnt mit StundenShooting:.

PaketShooting

PaketShootings sind Shootings.

PaketShooting(stunden, kunde, fotograf, paketPreis)

Der Paketpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit PaketShooting:.


14. Reinigungsfirma

Reinigungsfirma

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Reinigung             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - objekt: String                 │
│ - firma: String                  │
├──────────────────────────────────┤
│ + Reinigung(...)                 │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      StundenReinigung      │   │     PauschalReinigung      │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenSatz: float       │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenReinigung(...)    │   │ + PauschalReinigung(...)   │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Reinigung

Reinigung(stunden, objekt, firma)

Es wird eine Reinigung mit der übergebenen Anzahl der Stunden, der Objektbezeichnung und dem Namen der Firma erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Stunde zurück.

toString(): String

Beispiel:

5 Stunden, Objekt: Büro
Firma: Sauber GmbH
Kosten: 150.0 EUR, Kosten pro Stunde: 30.0 EUR

StundenReinigung

StundenReinigungen sind Reinigungen.

StundenReinigung(stunden, objekt, firma, stundenSatz)

Der Stundensatz muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Stunden multipliziert mit dem Stundensatz.

toString(): String

Die Ausgabe beginnt mit StundenReinigung:.

PauschalReinigung

PauschalReinigungen sind Reinigungen.

PauschalReinigung(stunden, objekt, firma, pauschale)

Die Pauschale muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PauschalReinigung:.


15. Lieferdienst

Lieferdienst

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Lieferung             │
├──────────────────────────────────┤
│ - kilometer: int                 │
│ - ziel: String                   │
│ - fahrer: String                 │
├──────────────────────────────────┤
│ + Lieferung(...)                 │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProKilometer(): double   │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│     KilometerLieferung     │   │     PauschalLieferung      │
├────────────────────────────┤   ├────────────────────────────┤
│ - kilometerPreis: float    │   │ - pauschalPreis: float     │
├────────────────────────────┤   ├────────────────────────────┤
│ + KilometerLieferung(...)  │   │ + PauschalLieferung(...)   │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Lieferung

Lieferung(kilometer, ziel, fahrer)

Es wird eine Lieferung mit der übergebenen Anzahl der Kilometer, dem Ziel und dem Namen der Fahrer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Kilometer muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProKilometer(): double

Die Methode liefert die Kosten pro Kilometer zurück.

toString(): String

Beispiel:

20 Kilometer, Ziel: Baden
Fahrer:in: Lukas
Kosten: 30.0 EUR, Kosten pro Kilometer: 1.5 EUR

KilometerLieferung

KilometerLieferungen sind Lieferungen.

KilometerLieferung(kilometer, ziel, fahrer, kilometerPreis)

Der Kilometerpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Kilometer multipliziert mit dem Kilometerpreis.

toString(): String

Die Ausgabe beginnt mit KilometerLieferung:.

PauschalLieferung

PauschalLieferungen sind Lieferungen.

PauschalLieferung(kilometer, ziel, fahrer, pauschalPreis)

Der Pauschalpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Pauschalpreis.

toString(): String

Die Ausgabe beginnt mit PauschalLieferung:.


16. Taxiunternehmen

Taxiunternehmen

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│              Fahrt               │
├──────────────────────────────────┤
│ - kilometer: int                 │
│ - start: String                  │
│ - ziel: String                   │
├──────────────────────────────────┤
│ + Fahrt(...)                     │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProKilometer(): double    │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│          TaxiFahrt         │   │       FixpreisFahrt        │
├────────────────────────────┤   ├────────────────────────────┤
│ - kilometerPreis: float    │   │ - fixPreis: float          │
│ - grundGebuehr: float      │   │                            │
├────────────────────────────┤   ├────────────────────────────┤
│ + TaxiFahrt(...)           │   │ + FixpreisFahrt(...)       │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Fahrt

Fahrt(kilometer, start, ziel)

Es wird eine Fahrt mit der übergebenen Anzahl der Kilometer, dem Start und dem Ziel erzeugt.

get- und set-Methoden

  • Die Kilometer müssen mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProKilometer(): double

Die Methode liefert den Preis pro Kilometer zurück.

toString(): String

Beispiel:

12 Kilometer, Start: Hauptbahnhof
Ziel: Flughafen
Preis: 36.0 EUR, Preis pro Kilometer: 3.0 EUR

TaxiFahrt

TaxiFahrten sind Fahrten.

TaxiFahrt(kilometer, start, ziel, kilometerPreis, grundGebuehr)

Kilometerpreis und Grundgebühr müssen größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ergibt sich aus Grundgebühr plus Kilometer multipliziert mit Kilometerpreis.

toString(): String

Die Ausgabe beginnt mit TaxiFahrt:.

FixpreisFahrt

FixpreisFahrten sind Fahrten.

FixpreisFahrt(kilometer, start, ziel, fixPreis)

Der Fixpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Fixpreis.

toString(): String

Die Ausgabe beginnt mit FixpreisFahrt:.


17. Paketversand

Paketversand

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             Versand              │
├──────────────────────────────────┤
│ - gewicht: int                   │
│ - empfaenger: String             │
│ - land: String                   │
├──────────────────────────────────┤
│ + Versand(...)                   │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProKg(): double          │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       GewichtsVersand      │   │      PauschalVersand       │
├────────────────────────────┤   ├────────────────────────────┤
│ - preisProKg: float        │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + GewichtsVersand(...)     │   │ + PauschalVersand(...)     │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Versand

Versand(gewicht, empfaenger, land)

Es wird ein Versand mit dem übergebenen Gewicht, dem Namen der Empfänger:in und dem Zielland erzeugt.

get- und set-Methoden

  • Das Gewicht muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProKg(): double

Die Methode liefert die Kosten pro Kilogramm zurück.

toString(): String

Beispiel:

5 kg, Empfänger: Max
Land: Deutschland
Kosten: 25.0 EUR, Kosten pro kg: 5.0 EUR

GewichtsVersand

GewichtsVersände sind Versände.

GewichtsVersand(gewicht, empfaenger, land, preisProKg)

Der Preis pro Kilogramm muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Gewicht multipliziert mit dem Preis pro Kilogramm.

toString(): String

Die Ausgabe beginnt mit GewichtsVersand:.

PauschalVersand

PauschalVersände sind Versände.

PauschalVersand(gewicht, empfaenger, land, pauschale)

Die Pauschale muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PauschalVersand:.


18. Campingplatz

Campingplatz

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Aufenthalt            │
├──────────────────────────────────┤
│ - naechte: int                   │
│ - gast: String                   │
│ - platz: String                  │
├──────────────────────────────────┤
│ + Aufenthalt(...)                │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProNacht(): double        │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│        ZeltAufenthalt      │   │     WohnmobilAufenthalt    │
├────────────────────────────┤   ├────────────────────────────┤
│ - nachtPreis: float        │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + ZeltAufenthalt(...)      │   │ + WohnmobilAufenthalt(...) │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Aufenthalt

Aufenthalt(naechte, gast, platz)

Es wird ein Aufenthalt mit der übergebenen Anzahl der Nächte, dem Namen des Gastes und dem Platz erzeugt.

get- und set-Methoden

  • Die Anzahl der Nächte muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProNacht(): double

Die Methode liefert den Preis pro Nacht zurück.

toString(): String

Beispiel:

4 Nächte, Platz: A12
Gast: Maria
Preis: 80.0 EUR, Preis pro Nacht: 20.0 EUR

ZeltAufenthalt

ZeltAufenthalte sind Aufenthalte.

ZeltAufenthalt(naechte, gast, platz, nachtPreis)

Der Nachtpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist Nächte multipliziert mit dem Nachtpreis.

toString(): String

Die Ausgabe beginnt mit ZeltAufenthalt:.

WohnmobilAufenthalt

WohnmobilAufenthalte sind Aufenthalte.

WohnmobilAufenthalt(naechte, gast, platz, paketPreis)

Der Paketpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit WohnmobilAufenthalt:.


19. Hundeschule

Hundeschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          HundeTraining           │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - hund: String                   │
│ - trainer: String                │
├──────────────────────────────────┤
│ + HundeTraining(...)             │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       EinzelTraining       │   │      GruppenTraining       │
├────────────────────────────┤   ├────────────────────────────┤
│ - einzelPreis: float       │   │ - kursPreis: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelTraining(...)      │   │ + GruppenTraining(...)     │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse HundeTraining

HundeTraining(einheiten, hund, trainer)

Es wird ein HundeTraining mit der übergebenen Anzahl der Einheiten, dem Namen des Hundes und dem Namen der Trainer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProEinheit(): double

Die Methode liefert den Preis pro Einheit zurück.

toString(): String

Beispiel:

5 Einheiten, Hund: Bello
Trainer:in: Lisa
Preis: 150.0 EUR, Preis pro Einheit: 30.0 EUR

EinzelTraining

EinzelTrainings sind HundeTrainings.

EinzelTraining(einheiten, hund, trainer, einzelPreis)

Der Einzelpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Einzelpreis.

toString(): String

Die Ausgabe beginnt mit EinzelTraining:.

GruppenTraining

GruppenTrainings sind HundeTrainings.

GruppenTraining(einheiten, hund, trainer, kursPreis)

Der Kurspreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Kurspreis.

toString(): String

Die Ausgabe beginnt mit GruppenTraining:.


20. Reitschule

Reitschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             ReitKurs             │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - schueler: String               │
│ - pferd: String                  │
├──────────────────────────────────┤
│ + ReitKurs(...)                  │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│     EinzelReitstunde       │   │         ReitPaket          │
├────────────────────────────┤   ├────────────────────────────┤
│ - einzelPreis: float       │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelReitstunde(...)    │   │ + ReitPaket(...)           │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse ReitKurs

ReitKurs(einheiten, schueler, pferd)

Es wird ein ReitKurs mit der übergebenen Anzahl der Einheiten, dem Namen der Schüler:in und dem Namen des Pferdes erzeugt.

get- und set-Methoden

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProEinheit(): double

Die Methode liefert den Preis pro Einheit zurück.

toString(): String

Beispiel:

6 Einheiten, Schüler:in: Anna
Pferd: Luna
Preis: 240.0 EUR, Preis pro Einheit: 40.0 EUR

EinzelReitstunde

EinzelReitstunden sind ReitKurse.

EinzelReitstunde(einheiten, schueler, pferd, einzelPreis)

Der Einzelpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Einzelpreis.

toString(): String

Die Ausgabe beginnt mit EinzelReitstunde:.

ReitPaket

ReitPakete sind ReitKurse.

ReitPaket(einheiten, schueler, pferd, paketPreis)

Der Paketpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit ReitPaket:.


21. Werkstatt

Werkstatt

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            Reparatur             │
├──────────────────────────────────┤
│ - arbeitsStunden: int            │
│ - fahrzeug: String               │
│ - mechaniker: String             │
├──────────────────────────────────┤
│ + Reparatur(...)                 │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      StundenReparatur      │   │     FixpreisReparatur      │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenSatz: float       │   │ - fixPreis: float          │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenReparatur(...)    │   │ + FixpreisReparatur(...)   │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Reparatur

Reparatur(arbeitsStunden, fahrzeug, mechaniker)

Es wird eine Reparatur mit der übergebenen Anzahl der Arbeitsstunden, dem Fahrzeug und dem Namen der Mechaniker:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Arbeitsstunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Arbeitsstunde zurück.

toString(): String

Beispiel:

3 Arbeitsstunden, Fahrzeug: Ford Focus
Mechaniker:in: Markus
Kosten: 240.0 EUR, Kosten pro Stunde: 80.0 EUR

StundenReparatur

StundenReparaturen sind Reparaturen.

StundenReparatur(arbeitsStunden, fahrzeug, mechaniker, stundenSatz)

Der Stundensatz muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Arbeitsstunden multipliziert mit dem Stundensatz.

toString(): String

Die Ausgabe beginnt mit StundenReparatur:.

FixpreisReparatur

FixpreisReparaturen sind Reparaturen.

FixpreisReparatur(arbeitsStunden, fahrzeug, mechaniker, fixPreis)

Der Fixpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Fixpreis.

toString(): String

Die Ausgabe beginnt mit FixpreisReparatur:.


22. IT-Support

IT-Support

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│         SupportAuftrag           │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - kunde: String                  │
│ - techniker: String              │
├──────────────────────────────────┤
│ + SupportAuftrag(...)            │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       StundenSupport       │   │        SupportPaket        │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenSupport(...)      │   │ + SupportPaket(...)        │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse SupportAuftrag

SupportAuftrag(stunden, kunde, techniker)

Es wird ein SupportAuftrag mit der übergebenen Anzahl der Stunden, dem Namen der Kund:in und dem Namen der Techniker:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Supportstunde zurück.

toString(): String

Beispiel:

4 Stunden, Kund:in: Firma Muster
Techniker:in: Daniel
Kosten: 320.0 EUR, Kosten pro Stunde: 80.0 EUR

StundenSupport

StundenSupport-Aufträge sind SupportAufträge.

StundenSupport(stunden, kunde, techniker, stundenPreis)

Der Stundenpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Ausgabe beginnt mit StundenSupport:.

SupportPaket

SupportPakete sind SupportAufträge.

SupportPaket(stunden, kunde, techniker, paketPreis)

Der Paketpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit SupportPaket:.


23. Webdesign

Webdesign

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│           WebProjekt             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - projektName: String            │
│ - entwickler: String             │
├──────────────────────────────────┤
│ + WebProjekt(...)                │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProStunde(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       StundenProjekt       │   │       FixpreisProjekt      │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenSatz: float       │   │ - fixPreis: float          │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenProjekt(...)      │   │ + FixpreisProjekt(...)     │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse WebProjekt

WebProjekt(stunden, projektName, entwickler)

Es wird ein WebProjekt mit der übergebenen Anzahl der Stunden, dem Projektnamen und dem Namen der Entwickler:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProStunde(): double

Die Methode liefert die Kosten pro Arbeitsstunde zurück.

toString(): String

Beispiel:

20 Stunden, Projekt: Firmenwebsite
Entwickler:in: Lena
Kosten: 1200.0 EUR, Kosten pro Stunde: 60.0 EUR

StundenProjekt

StundenProjekte sind WebProjekte.

StundenProjekt(stunden, projektName, entwickler, stundenSatz)

Der Stundensatz muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind Stunden multipliziert mit dem Stundensatz.

toString(): String

Die Ausgabe beginnt mit StundenProjekt:.

FixpreisProjekt

FixpreisProjekte sind WebProjekte.

FixpreisProjekt(stunden, projektName, entwickler, fixPreis)

Der Fixpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Fixpreis.

toString(): String

Die Ausgabe beginnt mit FixpreisProjekt:.


24. Druckerei

Druckerei

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│          DruckAuftrag            │
├──────────────────────────────────┤
│ - anzahl: int                    │
│ - produkt: String                │
│ - kunde: String                  │
├──────────────────────────────────┤
│ + DruckAuftrag(...)              │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProStueck(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│         StueckDruck        │   │        PauschalDruck       │
├────────────────────────────┤   ├────────────────────────────┤
│ - stueckPreis: float       │   │ - auftragPreis: float      │
├────────────────────────────┤   ├────────────────────────────┤
│ + StueckDruck(...)         │   │ + PauschalDruck(...)       │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse DruckAuftrag

DruckAuftrag(anzahl, produkt, kunde)

Es wird ein DruckAuftrag mit der übergebenen Anzahl, der Produktbezeichnung und dem Namen der Kund:in erzeugt.

get- und set-Methoden

  • Die Anzahl muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProStueck(): double

Die Methode liefert den Preis pro Stück zurück.

toString(): String

Beispiel:

100 Stück, Produkt: Flyer
Kund:in: Firma Beispiel
Preis: 50.0 EUR, Preis pro Stück: 0.5 EUR

StueckDruck

StueckDruck-Aufträge sind DruckAufträge.

StueckDruck(anzahl, produkt, kunde, stueckPreis)

Der Stückpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl multipliziert mit dem Stückpreis.

toString(): String

Die Ausgabe beginnt mit StueckDruck:.

PauschalDruck

PauschalDruck-Aufträge sind DruckAufträge.

PauschalDruck(anzahl, produkt, kunde, auftragPreis)

Der Auftragspreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Auftragspreis.

toString(): String

Die Ausgabe beginnt mit PauschalDruck:.


25. Catering

Catering

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│        CateringAuftrag           │
├──────────────────────────────────┤
│ - personen: int                  │
│ - veranstaltung: String          │
│ - kunde: String                  │
├──────────────────────────────────┤
│ + CateringAuftrag(...)           │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProPerson(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      PersonenCatering      │   │      PauschalCatering      │
├────────────────────────────┤   ├────────────────────────────┤
│ - personenPreis: float     │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + PersonenCatering(...)    │   │ + PauschalCatering(...)    │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse CateringAuftrag

CateringAuftrag(personen, veranstaltung, kunde)

Es wird ein CateringAuftrag mit der übergebenen Anzahl der Personen, der Veranstaltung und dem Namen der Kund:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Personen muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProPerson(): double

Die Methode liefert den Preis pro Person zurück.

toString(): String

Beispiel:

20 Personen, Veranstaltung: Geburtstag
Kund:in: Sandra
Preis: 600.0 EUR, Preis pro Person: 30.0 EUR

PersonenCatering

PersonenCaterings sind CateringAufträge.

PersonenCatering(personen, veranstaltung, kunde, personenPreis)

Der Personenpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Personen multipliziert mit dem Personenpreis.

toString(): String

Die Ausgabe beginnt mit PersonenCatering:.

PauschalCatering

PauschalCaterings sind CateringAufträge.

PauschalCatering(personen, veranstaltung, kunde, pauschale)

Die Pauschale muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PauschalCatering:.


26. Veranstaltung

Veranstaltung

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│              Event               │
├──────────────────────────────────┤
│ - teilnehmer: int                │
│ - bezeichnung: String            │
│ - veranstalter: String           │
├──────────────────────────────────┤
│ + Event(...)                     │
│ + get-/set-Methoden              │
│ + kostenGesamt(): float          │
│ + kostenProTeilnehmer(): double  │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│      TeilnehmerEvent       │   │        PauschalEvent       │
├────────────────────────────┤   ├────────────────────────────┤
│ - teilnehmerPreis: float   │   │ - pauschalPreis: float     │
├────────────────────────────┤   ├────────────────────────────┤
│ + TeilnehmerEvent(...)     │   │ + PauschalEvent(...)       │
│ + kostenGesamt(): float    │   │ + kostenGesamt(): float    │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse Event

Event(teilnehmer, bezeichnung, veranstalter)

Es wird ein Event mit der übergebenen Anzahl der Teilnehmer:innen, der Bezeichnung und dem Namen der Veranstalter:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Teilnehmer:innen muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

kostenGesamt(): float

Die Methode ist abstrakt.

kostenProTeilnehmer(): double

Die Methode liefert die Kosten pro Teilnehmer:in zurück.

toString(): String

Beispiel:

50 Teilnehmer:innen, Bezeichnung: Firmenfeier
Veranstalter: Event GmbH
Kosten: 2000.0 EUR, Kosten pro Teilnehmer:in: 40.0 EUR

TeilnehmerEvent

TeilnehmerEvents sind Events.

TeilnehmerEvent(teilnehmer, bezeichnung, veranstalter, teilnehmerPreis)

Der Teilnehmerpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Gesamtkosten sind die Teilnehmeranzahl multipliziert mit dem Teilnehmerpreis.

toString(): String

Die Ausgabe beginnt mit TeilnehmerEvent:.

PauschalEvent

PauschalEvents sind Events.

PauschalEvent(teilnehmer, bezeichnung, veranstalter, pauschalPreis)

Der Pauschalpreis muss größer als 0.0 sein.

kostenGesamt(): float

Die Methode liefert den Pauschalpreis.

toString(): String

Die Ausgabe beginnt mit PauschalEvent:.


27. Bootsverleih

Bootsverleih

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│            BootMiete             │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - boot: String                   │
│ - kunde: String                  │
├──────────────────────────────────┤
│ + BootMiete(...)                 │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProStunde(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│         StundenBoot        │   │        PauschalBoot        │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - pauschale: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + StundenBoot(...)         │   │ + PauschalBoot(...)        │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse BootMiete

BootMiete(stunden, boot, kunde)

Es wird eine BootMiete mit der übergebenen Anzahl der Stunden, dem Namen des Bootes und dem Namen der Kund:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProStunde(): double

Die Methode liefert den Preis pro Stunde zurück.

toString(): String

Beispiel:

4 Stunden, Boot: Sea Star
Kund:in: Patrick
Preis: 200.0 EUR, Preis pro Stunde: 50.0 EUR

StundenBoot

StundenBoote sind BootMieten.

StundenBoot(stunden, boot, kunde, stundenPreis)

Der Stundenpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Ausgabe beginnt mit StundenBoot:.

PauschalBoot

PauschalBoote sind BootMieten.

PauschalBoot(stunden, boot, kunde, pauschale)

Die Pauschale muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert die Pauschale.

toString(): String

Die Ausgabe beginnt mit PauschalBoot:.


28. Flugschule

Flugschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│         FlugUnterricht           │
├──────────────────────────────────┤
│ - stunden: int                   │
│ - flugzeug: String               │
│ - flugLehrer: String             │
├──────────────────────────────────┤
│ + FlugUnterricht(...)            │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProStunde(): double       │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│          EinzelFlug        │   │          FlugPaket         │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelFlug(...)          │   │ + FlugPaket(...)           │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse FlugUnterricht

FlugUnterricht(stunden, flugzeug, flugLehrer)

Es wird ein FlugUnterricht mit der übergebenen Anzahl der Stunden, der Flugzeugbezeichnung und dem Namen der Fluglehrer:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Stunden muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProStunde(): double

Die Methode liefert den Preis pro Flugstunde zurück.

toString(): String

Beispiel:

3 Stunden, Flugzeug: Cessna 172
Fluglehrer:in: Martin
Preis: 600.0 EUR, Preis pro Stunde: 200.0 EUR

EinzelFlug

EinzelFlüge sind FlugUnterrichte.

EinzelFlug(stunden, flugzeug, flugLehrer, stundenPreis)

Der Stundenpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist Stunden multipliziert mit dem Stundenpreis.

toString(): String

Die Ausgabe beginnt mit EinzelFlug:.

FlugPaket

FlugPakete sind FlugUnterrichte.

FlugPaket(stunden, flugzeug, flugLehrer, paketPreis)

Der Paketpreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Paketpreis.

toString(): String

Die Ausgabe beginnt mit FlugPaket:.


29. Kochschule

Kochschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│             KochKurs             │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - thema: String                  │
│ - koch: String                   │
├──────────────────────────────────┤
│ + KochKurs(...)                  │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│       PrivatKochkurs       │   │      GruppenKochkurs       │
├────────────────────────────┤   ├────────────────────────────┤
│ - einzelPreis: float       │   │ - kursPreis: float         │
├────────────────────────────┤   ├────────────────────────────┤
│ + PrivatKochkurs(...)      │   │ + GruppenKochkurs(...)     │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse KochKurs

KochKurs(einheiten, thema, koch)

Es wird ein KochKurs mit der übergebenen Anzahl der Einheiten, dem Thema und dem Namen der Köch:in erzeugt.

get- und set-Methoden

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

preisGesamt(): float

Die Methode ist abstrakt.

preisProEinheit(): double

Die Methode liefert den Preis pro Einheit zurück.

toString(): String

Beispiel:

4 Einheiten, Thema: Italienische Küche
Köch:in: Marco
Preis: 200.0 EUR, Preis pro Einheit: 50.0 EUR

PrivatKochkurs

PrivatKochkurse sind KochKurse.

PrivatKochkurs(einheiten, thema, koch, einzelPreis)

Der Einzelpreis muss größer als 0.0 sein.

preisGesamt(): float

Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Einzelpreis.

toString(): String

Die Ausgabe beginnt mit PrivatKochkurs:.

GruppenKochkurs

GruppenKochkurse sind KochKurse.

GruppenKochkurs(einheiten, thema, koch, kursPreis)

Der Kurspreis muss größer als 0.0 sein.

preisGesamt(): float

Die Methode liefert den Kurspreis.

toString(): String

Die Ausgabe beginnt mit GruppenKochkurs:.


30. Fahrschule

Fahrschule

Implementieren Sie das folgende UML Diagramm:

┌──────────────────────────────────┐
│        FahrAusbildung            │
├──────────────────────────────────┤
│ - einheiten: int                 │
│ - schueler: String               │
│ - fahrLehrer: String             │
├──────────────────────────────────┤
│ + FahrAusbildung(...)            │
│ + get-/set-Methoden              │
│ + preisGesamt(): float           │
│ + preisProEinheit(): double      │
│ + toString(): String             │
│ + weitere laut Angabe            │
└──────────────────────────────────┘
                  │
                  △
              ┌───┴───────────────┐
              │                   │
┌────────────────────────────┐   ┌────────────────────────────┐
│     EinzelFahrstunde       │   │     FahrstundenPaket       │
├────────────────────────────┤   ├────────────────────────────┤
│ - stundenPreis: float      │   │ - paketPreis: float        │
├────────────────────────────┤   ├────────────────────────────┤
│ + EinzelFahrstunde(...)    │   │ + FahrstundenPaket(...)    │
│ + preisGesamt(): float     │   │ + preisGesamt(): float     │
│ + toString(): String       │   │ + toString(): String       │
│ + weitere laut Angabe      │   │ + weitere laut Angabe      │
└────────────────────────────┘   └────────────────────────────┘

Klasse FahrAusbildung

FahrAusbildung(einheiten, schueler, fahrLehrer)

Es wird eine FahrAusbildung mit der übergebenen Anzahl der Einheiten, dem Namen der Schüler:in und dem Namen der Fahrlehrer:in erzeugt.

get- und set-Methoden

Die folgenden Überprüfungen der Übergabeparameter müssen erfolgen:

  • Die Anzahl der Einheiten muss mindestens 1 sein.
  • Strings dürfen nicht null oder leer sein.

Geben Sie im Fehlerfall erklärende Meldungen auf der Systemkonsole aus.

preisGesamt(): float

Die Methode ist hier abstrakt und muss in den ableitenden Klassen implementiert werden.

preisProEinheit(): double

Die Methode liefert den Preis pro Fahreinheit zurück. Der Gesamtpreis wird von der Methode preisGesamt() geliefert. Die Anzahl der Einheiten enthält das Attribut einheiten.

toString(): String

Die Methode liefert alle Informationen einer FahrAusbildung zurück.

Beispiel:

10 Einheiten, Schüler:in: Lisa
Fahrlehrer:in: Martin
Preis: 650.0 EUR, Preis pro Einheit: 65.0 EUR

EinzelFahrstunde

EinzelFahrstunden sind FahrAusbildungen.

EinzelFahrstunde(einheiten, schueler, fahrLehrer, stundenPreis)

Es wird eine EinzelFahrstunde mit den übergebenen Attribut-Werten der Superklasse FahrAusbildung und dem übergebenen Stundenpreis erzeugt.

Der Wert von stundenPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Gesamtpreis ist die Anzahl der Einheiten multipliziert mit dem Stundenpreis.

toString(): String

Die Methode liefert alle Informationen einer EinzelFahrstunde beginnend mit dem Text EinzelFahrstunde: zurück.

FahrstundenPaket

FahrstundenPakete sind FahrAusbildungen.

FahrstundenPaket(einheiten, schueler, fahrLehrer, paketPreis)

Es wird ein FahrstundenPaket mit den übergebenen Attribut-Werten der Superklasse und dem übergebenen Paketpreis erzeugt.

Der Wert von paketPreis muss größer als 0.0 sein.

preisGesamt(): float

Die abstrakte Methode aus der Superklasse wird überschrieben. Der Gesamtpreis entspricht dem Wert des Attributs paketPreis.

toString(): String

Die Methode liefert alle Informationen eines FahrstundenPakets beginnend mit dem Text FahrstundenPaket: zurück.

Code-Dateien

DateinameAktion
CODECode_Tanzschule_D.zipDownload

PDF-Dokumente

DateinameAktion
PDFUebung_Tanzschule.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_Tanzschule_DAbspielen

Lernmaterialien

In Java, inheritance means that one class can reuse and extend the attributes and methods of another class.

The existing class is called the superclass (parent class). The new class is called the subclass (child class).

Java uses the keyword extends.

public class Vehicle {
    private String brand;

    public Vehicle(String brand) {
        this.brand = brand;
    }

    public void drive() {
        System.out.println("The vehicle is driving.");
    }

    public String getBrand() {
        return brand;
    }
}

A subclass can inherit from Vehicle:

public class Car extends Vehicle {
    private int doors;

    public Car(String brand, int doors) {
        super(brand);
        this.doors = doors;
    }

    public int getDoors() {
        return doors;
    }
}

Here, Car inherits the accessible methods of Vehicle, for example drive() and getBrand().

Car car = new Car("BMW", 4);

System.out.println(car.getBrand());
System.out.println(car.getDoors());
car.drive();

Output:

BMW
4
The vehicle is driving.

super(brand) calls the constructor of the superclass.


Overriding

Method overriding means that a subclass provides its own implementation of a method that already exists in the superclass.

For example, Vehicle has:

public void drive() {
    System.out.println("The vehicle is driving.");
}

The subclass Car can override this method:

public class Car extends Vehicle {
    private int doors;

    public Car(String brand, int doors) {
        super(brand);
        this.doors = doors;
    }

    @Override
    public void drive() {
        System.out.println("The car is driving.");
    }
}

Now:

Car car = new Car("BMW", 4);
car.drive();

Output:

The car is driving.

@Override tells Java that this method is intended to replace a method inherited from the superclass.

So, in short:

  • Inheritance: A subclass receives attributes/methods from a superclass.
  • extends: Used to create inheritance.
  • super(...): Calls the superclass constructor.
  • Overriding: A subclass replaces an inherited method with its own implementation.
  • @Override: Marks an overridden method.