• UML-Klassendiagramme
  • 2794248749deebae91f01e98d0cacb
  • 12.03.2025
  • Informatik
  • 10
Um die Lizenzinformationen zu sehen, klicken Sie bitte den gewünschten Inhalt an.

Klas­sen mo­del­lie­ren und Klas­sen­dia­gram­me er­stel­len

1
Be­trach­te das ge­ge­be­ne Klas­sen­dia­gramm zur Klas­se Konto:
  • Be­schrei­be die an­ge­ge­be­nen At­tri­bu­te in Stich­punk­ten - wel­che Ei­gen­schaf­ten hat die Klas­se Konto?
  • Be­schrei­be die an­ge­ge­be­nen Me­tho­den der Klas­se stich­punkt­ar­tig - wel­che Fä­hig­kei­ten hat die Klas­se Konto?
  • Die Me­tho­de über­wei­sen() hat eine Pa­ra­me­ter­über­ga­be für den Über­wei­sungs­be­trag. Wel­cher Pa­ra­me­ter fehlt, um eine Über­wei­sung kor­rekt aus­füh­ren zu kön­nen?
  • Die Me­tho­de über­wei­sen() hat als Pa­ra­me­ter den In­te­ger be­trag. Be­ur­tei­le, ob ein In­te­ger hier sinn­voll ist.
Quel­le: pix­a­bay.com
2
Das neue Com­pu­ter­spiel „Mas­ters of the Mons­ters“ soll ent­wi­ckelt wer­den - ihr be­fin­det euch in der Kon­zept­pha­se und sollt als Ent­wick­lungs­grund­la­ge ein Klas­sen­dia­gramm mit fünf Klas­sen ent­wer­fen:
  • Spie­ler: Ein Spie­ler hat Be­nut­zer­na­men, Level, Ge­sund­heit und Punkt­zahl. Ein Spie­ler be­sitzt auch eine Waffe.
  • Aus­rüs­tung: Aus­rüs­tung hat Name und Schutz­wert.
  • Rüs­tung: Eine spe­zi­el­le Art von Aus­rüs­tung hat zu­sätz­lich Ge­wicht. Sie erbt von der Klas­se Aus­rüs­tung.
  • Waffe: Eine Waffe hat Scha­den, Typ (z. B. Schwert, Bogen) und Halt­bar­keit. Sie erbt von der Klas­se Aus­rüs­tung.
  • Helm: Eine wei­te­re spe­zi­el­le Art von Aus­rüs­tung, die zu­sätz­lich Sicht­bar­keit und Schutz­wert hat. Sie erbt eben­falls von der Klas­se Aus­rüs­tung.
3
Er­wei­te­re das Klas­sen­dia­gramm um pas­sen­de Me­tho­den. Jede Klas­se soll eine Me­tho­de ge­t­Image() be­sit­zen, die das je­wei­li­ge Bild an­zei­gen kann. Spie­ler sol­len mit einer Waffe an­grei­fen() kön­nen. Aus­rüs­tungs­ge­gen­stän­de sol­len ihren Schutz­wert und ihren Scha­den aus­ge­ben kön­nen.
4
Er­wei­te­re das Klas­sen­dia­gramm von „Mas­ters of the Mons­ters“ um eine Klas­se Mons­ter, mit der die Geg­ner mo­del­liert wer­den sol­len - über­le­ge dir pas­sen­de At­tri­bu­te und Me­tho­den.

Klas­sen­dia­gram­me im­ple­men­tie­ren - Klas­sen de­fi­nie­ren

5
Im­ple­men­tie­re die Klas­se Konto im Java-​Dokument Konto.java. Die Me­tho­de geld­Ein­zah­len(dou­ble be­trag) soll den über­ge­be­nen Be­trag zum kon­to­stand ad­die­ren, die Me­tho­de geld­Ab­he­ben(dou­ble be­trag) soll den über­ge­be­nen Be­trag in der Kom­man­do­zei­le aus­ge­ben und vom Kon­to­stand ab­zie­hen, wenn auf dem Konto ge­nü­gend Geld vor­han­den ist.
6
  • Er­stel­le in der Datei Main.java das Ob­jekt konto1 der Klas­se Konto, IBAN: DE12345678910, Kon­to­stand 0.0€.
  • Zahle durch einen Auf­ruf der Me­tho­de konto1.geld­Ein­zah­len(500.0) 500€ auf das konto1 ein.
  • Hebe durch einen ge­eig­ne­ten Me­tho­den­auf­ruf 50€ vom konto1 ab.
Ob­jek­te in­stan­zi­ie­ren

Um ein Ob­jekt zu er­stel­len schreibt man in Java:

Klas­sen­na­me ob­jekt­be­zeich­ner = new Klas­sen­na­me(Pa­ra­me­ter);

7
Er­wei­te­re die Klas­se Konto um eine Me­tho­de über­wei­sung(Konto ziel, dou­ble be­trag).
  • Die Me­tho­de be­kommt als Pa­ra­me­ter das Ziel­kon­to und den Be­trag über­ge­ben
  • In der Me­tho­de soll dem Kon­to­stand des Ziel­kon­tos der Be­trag über­wie­sen wer­den und vom Kon­to­stand des ak­tu­el­len Kon­tos ab­ge­zo­gen wer­den.
  • Um dem Kon­to­stand des Ziel­kon­tos Geld hin­zu­zu­fü­gen kann die Me­tho­de geld­Ein­zah­len(dou­ble be­trag) ver­wen­det wer­den.
  • Vor der Über­wei­sung soll ge­prüft wer­den, ob der Kon­to­stand für die Über­wei­sung aus­rei­chend ist.
8
Er­stel­le zu dei­nem Greenfoot-​Projekt ein Klas­sen­dia­gramm. Über­le­ge dir, wel­che Klas­sen und At­tri­bu­te du ak­tu­ell im­ple­men­tiert hast und über­le­ge dir, wel­che Klas­sen und At­tri­bu­te du be­nö­tigst, um den Rest dei­nes Pro­jekts im­ple­men­tie­ren zu kön­nen.

Lö­sun­gen

Java
public class Konto {
// Deklaration der Attribute
private double kontostand;
private String IBAN;
// Konstruktor zur Initialisierung der Attribute
public Konto(String IBAN, double kontostand) {
this.kontostand = kontostand;
this.IBAN = IBAN;
}
// Methode zum Einzahlen von Geld
public void geldEinzahlen(double betrag) {
kontostand = kontostand + betrag;
}
// Methode zum Abheben von Geld
public void geldAbheben(double betrag) {
if (kontostand >= betrag) {
System.out.println(betrag + " wurde abgehoben");
kontostand = kontostand - betrag;
} else {
System.out.println("Kontostand nicht ausreichend");
}
}
}
Lö­sung zu Auf­ga­be 5
Java
public class Main {
public static void main(String[] args) {
// a) Erstelle das Objekt konto1 der Klasse Konto
Konto konto1 = new Konto("DE12345678919", 0.0);
// b) Zahle 500€ auf das konto1 ein
konto1.geldEinzahlen(500.0);
// c) Hebe 50€ vom konto1 ab
konto1.geldAbheben(50.0);
}
}
Lö­sung zu Auf­ga­be 6
Java
// Methode für eine Überweisung
public void überweisung(Konto ziel, double betrag) {
if (kontostand >= betrag) {
// Betrag vom aktuellen Konto abziehen
this.geldAbheben(betrag);
// Betrag dem Zielkonto hinzufügen
ziel.geldEinzahlen(betrag);
// Erfolgsnachricht ausgeben
System.out.println("Überweisung von " + betrag +
" auf das Konto " + ziel + " erfolgreich.");
}
else {
// Fehlermeldung bei unzureichendem Kontostand
System.out.println("Kontostand nicht ausreichend für die Überweisung.");
}
}
Lö­sung zu Auf­ga­be 7
x