- Konstruktoren
Wir haben im Unterricht gemeinsam angeschaut, wie ein Konstruktor in Java aufgebaut ist, und wozu er notwendig ist. Anschliessend hatten wir einen Auftrag, bei dem wir die KlasseKonto
von letzter Woche um einen Konstruktor ertweitert, damit man nun eine Instanz mit einem Startguthaben erstellen kann. Zudem sollte man allerdings auch immer noch in der Lage sein, ein Konto ohne Guthaben zu erstellen. Ich konnte diese Aufgaben ohne grössere Schwierigkeiten lösen. - UML
Wir haben anfangs gemeinsam in der Klasse angeschaut, was UML (Unified Modeling Language) bedeuted, und wie man damit Diagramme von Klassen und deren Beziehungen erstellen kann. Am Anfang einer "UML Klasse" steht immer der Klassenname. Anschliessend beginnt jede Zeile entweder mit einem+
fürpublic
oder einem-
fürprivate
. Danach kommt der Konstruktoren-, Methoden- oder Attributname. Am Ende der Zeile steht optional auch noch ein Rückgabewert. Bei Konstruktoren oder bei Rückgabewerten vom Typvoid
muss (bei Konstruktoren) respektive darf (Rückgabewerten) dieser allerdings nicht angegeben werden.
_________________________
| <Class Name> |
|-----------------------|
|(+/-)<name> : <type> |
|(+/-)<name> : <type> |
|---------------------- |
|(+/-)<cons. name> |
|(+/-)<name> : <type> |
|(+/-)<name> : <type> |
|_______________________|
_________________________
| <Class Name> |
|-----------------------|
| Attribute |
|---------------------- |
| Konstruktoren |
| |
| Methoden |
|_______________________|
- Mehrere Fachklassen
Gegen Ende des Unterrichts habe ich noch ein bestehendes Diagramm in Java implementiert. Dabei sollten wir 3 Klassen
Main
,Ship
undCompetition
implementieren. Die Methoden und Attribute der Klassen waren durch das Diagramm bereits vorgegeben. Das Einzige was anschliessend noch implementiert werden musste, war die Logik dahinter. - UML Generator
Da ich fürher fertig war mit den Aufgaben, habe ich damit begonnen einen UML Generator zu schreiben. Viele Tools besitzen zwar bereits eine Möglichkeit, um bestehenden Java Code in ein UML zu verwandeln. Allerdings ist dieser bei den von mir getesteten Tools immer kostenpflichtig. Aus diesem Grund, habe ich mich dazu entschieden, selbst eine Klasse zu implementieren, welche ein UML aus bestehenden Klassen generiert. So wurde also die Klasse
UMLGenerator
erschaffen. Diese beinhaltet 2 öffentliche Methoden. Mit der MethodegenerateUml(Class cls)
ist man in der Lage, ein UML von einer einzelnen Klasse zu erstellen. Mit der 2. MethodegenerateUmlByPackage(String packagename)
ist man in der Lage, ein UML von allen Klassen und Subklassen von einem Package zu erstellen. Das Endergebnis sieht dann in etwa so aus
**************************************
Package: dev.bbzbl.m320
Name: Ship
---
-nummer : int
-name : String
-time : int
---
+Ship(arg0 : int arg1 : String )
+getName() : String
+setName(arg0 : String ) : void
+getTime() : int
+setNummer(arg0 : int ) : void
+getNummer() : int
+race() : void
**************************************
Am heutigen Tag habe ich dazugelernt, was UML ist und wie man aus Java Klassen Diagramme zeichnen kann. Ich denke, dass ich das Zeichnen von Diagrammen aus Java Klassen relativ gut verstanden habe und so auch bei einem echten Projekt anwenden könnte.
In dieser Woche sind 3 neue Punkte (A1G, A1F und A1E) beim Schaufenster dazugekommen. Mein Ziel ist es nun, diese auf nächste Woche (oder zumindes so weit wie möglich) in meinem Schaufenster zu erledigen.
Ich denke, dass ich in dieser Woche sehr viel Neues - vorallem bezüglich UML - dazugelernt habe. Ich denke, dass ich beim Thema relativ gut mitgekommen bin und alles soweit verstanden habe.
In dieser Woche habe ich die Kompetenzen A1G
und A1F
erledigt.