Hinweise zu Übung 1.1

Werbung
Praktikum SW 2 2013S Hinweise zu Übung 1.1 Properties Properties in Java sind ein standardisiertes Konzept, um Eigenschaften von Objekten mit Datenkapselung zu implementieren (siehe JavaBeans‐Standard http://www.oracle.com/technetwork/java/javase/documentation/spec‐136004.html). Properties werden mit Getter‐ und Setter‐Methoden implementiert: 
Getter: Öffentliche Methode beginnt mit „get“ (oder „is“ für Boolesche Properties) plus Name der Property (ersten Buchstabe groß). Methode hat keinen Parameter und einen Rückgabewert vom Typ der Property. Zum Beispiel: public void setName(String name) 
Setter: Öffentliche Methode beginnt mit „set“ plus Name der Property (ersten Buchstabe groß). Methode hat keinen Rückgabewert und einen Parameter vom Typ der Property. Zum Beispiel:
public void setName(String name) Die beiden Methoden implementieren dann gemeinsam eine Property. Fehlt der Getter ist die Property nicht lesbar, fehlt der Setter ist die Property nicht schreibbar. Die Property hat dann folgende Eigenschaften: 

Name der Property: Name nach „get“ oder „set“ aber klein geschrieben. Zum Beispiel: Name der Property mit Getter und Setter wie oben ist "name" Typ der Property: Rückgabetyp des Getters und Typ des Parameters des Setters ergibt Typ der Property. Zum Beispiel: Typ der Property name ist String Praktikum SW 2 2013S Annotationen Verwenden Sie folgende Annotionen, um Objekteigenschaften zu kennzeichnen: 


@Render: soll anzeigen, dass eine Eigenschaft ausgegeben werden soll; damit sollten Getter annotiert werden. @Edit: soll anzeigen, dass eine Eigenschaft ediert werden kann; soll mit Setter verwendet werden. @Create: soll anzeigen, dass für eine Eigenschaft, deren Wert null ist, ein neues Objekt mit dem Standardkonstruktor erzeugt werden soll; soll mit Setter verwendet werden. Darstellung der Objekteigenschaften Um die durch Reflection gewonnenen Informationen darzustellen, sollten Sie zwei Klassen implementieren: 

ObjectInfo: Speichert Informationen über einen Objektwert. Ein ObjectInfo‐
Objekt speichert eine Referenz auf das Objekt plus eine Liste von Informationen über die Eigenschaften des Objects (PropertyInfos). PropertyInfo: Speichert die Informationen zu einer Eigenschaft eines Objects. Hat damit etwa folgende Informationen: - Name der Eigenschaft - Getter‐Methode - Setter‐Methode - Typ der Eigenschaft - Annotationen für die Eigenschaft (renderable, editable, creatable) - Wert der Eigenschaft - Wenn Wert ein Objekt, Zugriff auf die ObjectInfo des Objekts Die folgende Abbildung zeigt eine Beispielstruktur. Im oberen Teil ist ein Objektstruktur angedeutet (siehe Klasse Man in Beispiel‐Shapes). Im unteren Teil sieht man dann die Struktur der Informationsobjekte. :Point
paul :Man
Objects
head
body
armLeft
armRight
...
name: String = ..
radius: int = ...
object
x: int = ..
y: int = ..
pos
:Circle
color
object
:Color
x: int = ..
y: int = ..
object
:Point
pos
:Rect
name: String
width: int
height: int
x: int = ...
y: int = ...
color
:Color
x: int
y: int
Infos
:ObjectInfo
property[0]
property[1]
property[2]
:PropertyInfo
value
name = "head"
type = Circle.class
getter = ...
Setter = ...
renderable = true
...
:ObjectInfo
property[1]
property[2]
:PropertyInfo
name = "head"
type = Circle.class
getter = ...
Setter = ...
renderable = true
...
property[0]
:PropertyInfo
:PropertyInfo
value
:ObjectInfo
value
:ObjectInfo
value
:ObjectInfo
name = "name"
type = String.class
getter = ...
Setter = ...
renderable = true
...
name = "Pos"
type = Point.class
getter = ...
Setter = ...
renderable = true
...
Herunterladen