1 Software Engineering II

Werbung
Klassendiagramm
Software Engineering II
Übung 4
Anmerkungen zur Lösung
Bestellung
Posten
Ware
int nr
Vector posten
int anzahl
Ware ware
Bestellung best
String Bezeichnung
int stueckpreis
Vector posten
1
*
neuerPosten()
gesamtPreis()
friendPostenAdd()
Bestellung()
*
Posten()
getWare()
getAnzahl()
getBestellung()
1
friendPostenAdd()
Ware()
getStueckpreis()
getBezeichnung()
Weitere get- und set-Methoden können sinnvoll sein.
Ware
Posten (I)
/* Klasse Ware */
import java.util.Vector;
/* Klasse Posten */
public class Ware {
protected String bezeichnung;
protected int stueckpreis;
protected Vector posten;
public class Posten {
protected int anzahl;
protected Ware ware;
protected Bestellung best;
/* Konstruktor Ware */
public Ware(String bezeichnung, int stueckpreis) {
this.bezeichnung = bezeichnung;
this.stueckpreis = stueckpreis;
}
/* Methode getBezeichnung */
public String getBezeichnung() {
return bezeichnung;
}
}
/* Methode getStueckpreis */
public int getStueckpreis() {
return stueckpreis;
}
Posten (II)
}
/* Methode friendPostenAdd */
void friendPostenAdd(Posten p) {
posten.addElement(p);
}
/* Konstruktor Posten */
public Posten(Bestellung b, Ware w, int anzahl) {
// Parameter übergeben.
this.best = b;
this.ware = w;
this.anzahl = anzahl;
// Posten bei Bestellung und Ware registrieren.
best.friendPostenAdd(this);
ware.friendPostenAdd(this);
}
Bestellung (I)
/* Methode getBestellung */
public Bestellung getBestellung() {
return bestellung;
}
/* Klasse Bestellung */
/* Methode getWare */
public Ware getWare() {
return ware;
}
public class Bestellung {
protected int nr;
protected Vector posten;
/* Methode getAnzahl */
public int getAnzahl() {
return anzahl;
}
import java.util.Vector;
import java.util.Enumeration;
/* Konstruktor Bestellung */
public Bestellung(int nr) {
this.nr = nr;
posten = new Vector();
}
1
Bestellung (II)
/* Methode neuerPosten */
public void neuerPosten(int anzahl, Ware w) {
// Posten-Objekt neu erzeugen
// Assoziationsaufbau in Klasse Posten
new Posten(this, w, anzahl);
}
/* Methode friendPostenAdd */
void friendPostenAdd(Posten p) {
posten.addElement(p);
}
Bestellung (III)
/* Methode gesamtPreis */
public int gesamtPreis() {
int summe = 0;
Enumeration e = posten.elements();
}
while (e.hasMoreElements()){
Posten p = (Posten) e.nextElement();
summe += p.getAnzahl() * p.getWare().getStueckpreis();
}
return summe;
Anmerkungen
Punktwertung
† Mehr Kommentare notwendig!
(hier zur besseren Lesbarkeit nicht abgedruckt)
† Aufbau geht nicht vom Posten aus -8
† Diagramm fehlt -10
† Methoden fehlen in Diagramm -1 oder mehr
(nicht bei absichtlichem und kommentiertem
Weglassen von get- und set-Methoden)
† Direktzugriff auf Attribute aus anderer Klasse
-1
† Aufgabenstellung genau beachten!
† Weitere Zusatzfunktionalitäten möglich, etwa
automatische Bestellnummernvergabe, …
† Keine Abzüge für zusätzliche Funktionalität
2
Herunterladen