Klassen UML Klassendiagramm

Asdf11

Mitglied
Hallo,

ich habe ein Problem mit einem Klassendiagramm, welches ich erstellen soll. Ich habe zwar eine Idee aber würde mich gerne vergewissern was ihr davon haltet.
Ich habe keinen anderen Bereich im Forum gefunden wo es besser reinpasst, falls es hier falsch ist tut es mir Leid und es wäre nett falls es jemand in den richtigen Bereich verschiebt.

Zur Aufgabe:

Fahrzeuge haben einen Typ (Hersteller und Modell) und eine Anzahl Plätze. Zudem werden Fahrzeuge in Klassen eingeteilt: Luxusklasse, Mittelklasse, Kleinwagen.
Erstellen sie ein Klassendiagramm daraus.

fahrzeug8ajoygs5uc.jpg


So ungefähr stelle ich es mir vor. Fahrzeug als Oberklasse und die 3 einzelnen spezialisierungen darunter.

Ist das richtig? Ich denke eher nicht es gibt bestimmt eine besserer Lösung. Außerdem noch dazu: darf ich eine spezialisierung erstellen ohne zusätzliche methoden oder variablen? Eigentlich schon oder?
Also rein theoretisch ist die Lösung glaube ich nicht falsch, nur praktisch wird es bestimmt etwas besseres geben...

Gruß
 

njans

Top Contributor
Also wenn das einzige, was alle 3 Autoklassen unterscheidet, der Name des Typs ist, dann wäre es sinnvoller einen String oder Enum zu übergeben. Wenn sich funktional bei den Instanzen nichts unterscheidet macht es keinen Sinn da Vererbung zu verwenden.
 

Joose

Top Contributor
So ungefähr stelle ich es mir vor. Fahrzeug als Oberklasse und die 3 einzelnen spezialisierungen darunter.

Ist das richtig?

Jein ... das kann man natürlich differenziert betrachten.
Entweder du hast eine Superklasse und leitest 3 weitere davon ab (so wie du es am Bild dargestellt hast). Oder du könntest auch ein Enum definieren für die "Klasse"/"Art" des Auto, und je nachdem setzt du dann den entsprechenden Wert.

Mögliche Lösungen:

Möglichkeit 1 (mit einfachen ableiten):
Java:
public class Auto {
   String type;
   int sitze;
}

public class Luxuswagen extends Auto {
}
....

Möglichkeit 2 (mit Enum):
Java:
public enum Wagenklasse {
   KLEINWAGEN, MITTELKLASSE, LUXUSKLASSE
}

public class Auto {
   String type;
   int sitze;
   Wagenklasse klasse;
}

Möglichkeit 3 (Kombination aus beiden)
Java:
public enum Wagenklasse {
   KLEINWAGEN, MITTELKLASSE, LUXUSKLASSE
}

public abstract class Auto {
   String type;
   int sitze;
   Wagenklasse klasse;

   public Auto(Wagenklasse klasse) {
      this.klasse = klasse;
   }
}

public class Luxuswagen extends Auto {
   public Luxuswagen() {
      super(Wagenklasse.LUXUSKLASSE);
   }
}
....

Der Vorteil von Möglichkeit 2: Du kannt mit einer Liste vom Typ Auto arbeiten und kannst per getter die Wagenklasse abfragen (und nicht den Weg über Typüberprüfung gehen).
Möglichkeit 3: Diese sorgt nur noch für Bequemlichkeit, da du nicht eine Objekt von Auto erstellen musst und ein Attribut angeben musst, sondern es reicht ein Objekt der entsprechenden Subklasse anzulegen.


Ich denke eher nicht es gibt bestimmt eine besserer Lösung.

Es gibt nicht die perfekte Lösung! Das Ganze hängt natürlich auf vom drum herum ab. Es gibt natürlich einfache "Standard" Sachen die für gewöhnlich so oder so gemacht werden, aber man sollte trotzdem wissen man darf es auch anders machen.


Außerdem noch dazu: darf ich eine spezialisierung erstellen ohne zusätzliche methoden oder variablen? Eigentlich schon oder?
Also rein theoretisch ist die Lösung glaube ich nicht falsch, nur praktisch wird es bestimmt etwas besseres geben...

Dürfen schon, ich mach es hier und da schon mal. Es gibt aber auch Programmierer die das nicht gerne sehen. Da eine Ableitung eine Klasse spezialisiert und deren Funktionalität erweitert. Ohne weitere Methoden/Attribute wäre dies nicht wirklich erfüllt. Kann man lange darüber diskutieren.
 
Zuletzt bearbeitet:

Asdf11

Mitglied
Super vielen Dank für die Antworten bisher, die Möglichkeit mit Enum habe ich mir auch schon überlegt, die würde ja dann etwa so aussehen:

fahrzeug8s216lcz95.jpg


Ich glaube so wie ich es auf der linken Seite gemacht habe dürfte es falsch sein? Die Assoziation ist da falsch?
Auf der rechten Seite fehlt mir jetzt noch die Definition des Enums bzw. die Information dass es eben die drei verschiedenen Autoklassen gibt. Oder lasse ich die in dem Klassendiagramm einfach weg? Und schreibe es so hin wie eben die rechte Seite es darstellt.

Gruß
 

Sorainthy

Mitglied
Hallo,

Deine erste Lösung war schon richtig. Ich gehe davon aus, dass ihr gerade mit OOP angefangen habt? Ich gehe davon aus, da noch keine Public oder Private Bezeichner an den Variablen sind.

Wenn du es wirklich mit einem Enum machen möchtest musst du einfach eine Enum Klasse erstellen und das Enum Attribut der Fahrzeug Klasse mit dem einfachen Pfeil aus deiner letzten Antwort verknüpfen. Google wird dir bei "UML ENUM" ein Bild servieren.

Nachteil von Enum:
Du kannst die einzelnen Fahrzeugklassen nicht nachträglich modifizieren bzw. nicht so leicht als wenn du die Lösung aus Post 1 verwendest. Stichwort: Methoden und @Override

Grüße,

Sorainthy
 

Asdf11

Mitglied
Also vielen Dank, ja OOP habe ich schon länger nur ich kann dieses ganze "aus dem Text ein Klassendiagramm erstellen" nicht besonders gut.


  • Die Autovermietung vermietet Fahrzeuge an Kunden.
  • Die Mitarbeiter der Autovermietung nutzen das System, wenn Kunden Fahrzeuge anmieten oder zurückgeben.
  • Fahrzeuge haben einen Typ (Hersteller und Modell) und eine Anzahl Plätze. Zudem werden Fahrzeuge in Klassen eingeteilt: Luxusklasse, Mittelklasse, Kleinwagen.
  • Die Autovermietung hat mehrere Standorte, an denen Kunden Fahrzeuge anmieten und zurückgeben können.
  • Damit ein Kunde ein Fahrzeug anmieten kann, muss ein Fahrzeug der gewünschten Klasse verfügbar sein. Der Führerschein des Kunden sowie eine gültige Kreditkarte müssen vorliegen.
  • Mit dem Anmieten wird die Kreditkarte des Kunden mit einer Kaution belastet.
  • Bei der Fahrzeugrückgabe werden der Benzinstand und der Fahrzeugzustand protokolliert.

Erstellen Sie die Use-Case-Beschreibung für den Use Case „Fahrzeug anmieten“

Das wäre die ganze Aufgabe, meine Lösung sieht folgerndemaßen aus:

fahrzeug0v7s1d3ig6.jpg


Könnte das so passen? Ideen, Anregungen? :)
Habe das mit den "+" usw vor den Bezeichern gefunden, davor wollte das Programm nicht so recht...

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
S UML Klassendiagramm umsetzen Java Basics - Anfänger-Themen 10
J Klassendiagramm: unique Java Basics - Anfänger-Themen 4
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
T Klassendiagramm in Java überführen Java Basics - Anfänger-Themen 2
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
B Klassendiagramm erklären Java Basics - Anfänger-Themen 3
C Klassendiagramm aus Java-Code entwickeln Java Basics - Anfänger-Themen 3
M UML-Klassendiagramm ArrayList Java Basics - Anfänger-Themen 1
X UML Klassendiagramm, UML Notation Java Basics - Anfänger-Themen 2
CptK Best Practice Klassendiagramm aus fertigen Klassen erstellen lassen Java Basics - Anfänger-Themen 2
J UML - Klassendiagramm Java Basics - Anfänger-Themen 8
M Klassen Klassendiagramm - Hilfe benötigt Java Basics - Anfänger-Themen 0
K Klassendiagramm UML Java Basics - Anfänger-Themen 12
S Klassen Klassendiagramm Implementierung? Java Basics - Anfänger-Themen 5
C Erste Schritte UML Klassendiagramm einen Prüfungsplan erstellen Java Basics - Anfänger-Themen 3
N Modellierung eines Programms in UML (Klassendiagramm) Java Basics - Anfänger-Themen 2
U klassendiagramm Java Basics - Anfänger-Themen 2
L UML Klassendiagramm Java Basics - Anfänger-Themen 8
Beckenbauer Eine anstehende (sehr simple) Applikation in UML darstellen (Klassendiagramm) Java Basics - Anfänger-Themen 20
M UML Klassendiagramm Java Basics - Anfänger-Themen 2
S Klassendiagramm - nur eigene Klassen? Java Basics - Anfänger-Themen 3
D Klassendiagramm Java Basics - Anfänger-Themen 4
M Klassendiagramm in Netbeans Java Basics - Anfänger-Themen 7
G UML-Klassendiagramm bitte prüfen! Java Basics - Anfänger-Themen 26
C UML Klassendiagramm erläutern! Java Basics - Anfänger-Themen 8
G dringende frage zu klassen und methoden ( klassendiagramm) Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben