Attribute

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Methoden und Attribute sind in der Klasse deklariert. Während Methoden ein Verhalten der Klasse beschreiben, sind Attribute die Eigenschaften der Klasse bzw. deren Instanzen/Objekte

Art Attribute

  • Instanzattribute = die Attribute sind an die Instanzen der Klasse gebunden. Daher werden diese Attribute bei einer Instanzierung initialisiert
  • Statische Attribute = die Attribute sind an die Klasse gebunden und nicht an die Instanzen der Klasse. So könnten hier z. B. die Anzahl der erzeugten Objekte der Klasse gespeichert werden. Werden neue Instanzen der Klasse erzeugt, behalten diese Attribute ihren Wert.
  • Konstanten = konstante Werte

Sichtbarkeit Attribute

  • PRIVATE = Attribute sind lediglich in der Klasse selbst sichtbar
  • PROTECTED = Attribute sind in der Klasse, sowie durch die Instanz und deren Erben sichtbar
  • PUBLIC = Attribute sind in der Klasse, deren Instanzen/Erben sowie auch außerhalb der Klasse sichtbar

Attribute können typisieren auf

  • Data Dictionary-Objekte
    • Tabellen
    • Strukturen
    • Datenelemente
  • Datentypen
  • Klassen

Attribute1.jpg

Instanzattribute

Eine Klasse ist sozusagen der Bauplan von einer Sache. Eine Referenzvariable in Bezug auf diese Klasse wird erzeugt durch den Befehl

Data: ref_var type ref of YCOC_SV_CLREP0002.

Ein Objekt/Instanz in Bezug auf diese Klasse, wo auch physischer Hauptspeicher zugewiesen wird, bewirkt folgender Befehl

Create object ref_var.

Statische Attribute

Statische Attribute sind Eigenschaften der Klasse und nicht der Instanz der Klasse. Wenn z. B. zu einer Klasse "Fuhrpark" jeweils ein Objekt der Klasse erzeugt wird, wenn ein neues Fahrzeug hinzukommt, ist es sinnvoll die Anzahl der Fahrzeuge in einem statischen Attribut zu speichern. Dies könnte im (Instanz-)Konstruktur der Klasse um einen Datensatz erhöht werden.

mv_counter_fzg = mv_counter_fzg + 1.

Read Only Attribut

Sofern ein Attribut "Public" ist und keine Konstante, kann das Attribut normal auch vom Aufrufer der Klasse geändert werden.

Möchte man nicht, dass von außerhalb der Klasse ein Attribut änderbar ist, kann man beim Attribut in der Klasse die Checkbox "Schreibg." (Read only) setzen.

Es kann aus Performancegründen sinnvoll sein ein Attribut auf "Public" zu setzen, damit der Aufrufer der Klasse direkt den Wert eines Attributs auslesen kann und nicht erst über eine GET-Methode den Wert auszulesen. Aber durch das Read Only-Flag wird die Veränderung des Wertes außerhalb der Klasse verhindert.

Anwendungsbeispiel Klassenattribut

Literatur