Objektorientierte SAP ABAP – Objekte und Klassen
In diesem Tutorial lernen wir eines der Prinzipien kennen, auf denen ABAP basiert – Objektorientierte Programmierung.
Wir werden lernen, was OOP bedeutet und was es in der Welt von SAP ABAP bedeutet.
Was ist OOP?
- Die objektorientierte Programmierung unterteilt Aufgaben in Objekte mit Daten und Funktionen.
- Diese Methode macht die Softwareprogrammierung verständlich, flexibel und wiederverwendbar.
- Die objektorientierte Programmierung (OOP) wurde mit Blick auf Einfachheit und Beredsamkeit entwickelt.
- Es lässt Menschen klar kommunizieren, Informationen und Ideen in einer gemeinsamen Sprache austauschen – der Sprache der Objekte.
- Diese Objekte bestehen aus ihren beiden Hauptmerkmalen – Eigenschaften (Daten) und Verhalten (oder Funktionen)
Die Hauptmerkmale von OOP sind –
- Datenabstraktion
- Kapselung
- Betonung auf Daten statt Prozedur
- Verwendung von realen Entitäten namens ‚Objekt‘
- Datenschutz und -schutz
Bleiben Sie über die neuesten Technologietrends auf dem Laufenden
Treten Sie DataFlair auf Telegram bei!!
POP vs OOP
Prozedurorientierte Programmierung (POP) nähert sich Problemen in einer Top-Down-Methode. Es betont Verfahren eher als Daten in einer linearen Art und Weise.
Lassen Sie uns ein paar Unterschiede zwischen POP und OOP sehen –
KNALL | OOP |
POP steht für Prozedurorientierte Programmierung | OOP steht für Objektorientierte Programmierung |
Es konzentriert sich eher auf Verfahren (Aufgaben ausführen) als auf Daten (Aufgaben) | Es konzentriert sich eher auf Daten / Aufgaben als auf Verfahren |
POP folgt der Top-Down-Mode bei der Problemlösung | OOP folgt der Bottom-Up-Mode bei der Problemlösung |
Es teilt ein Programm in kleinere Teile namens funktionen oder Module | Es unterteilt ein Programm in kleinere Teile, die als Objekte bezeichnet werden |
Funktionen teilen globale Daten und Daten können nicht voneinander ausgeblendet werden | Funktionen teilen keine globalen Daten – Sie können entscheiden, wer auf Ihre Daten zugreifen kann |
Es wird nicht viel Wert auf Datenschutz gelegt | Einer der Hauptschwerpunkte in OOP ist der Datenschutz |
Die Erweiterung der Funktionalität und das Hinzufügen von Daten ist mühsam und zeitaufwändig | Es ist sehr einfach, die Funktionalität zu erweitern und neue Daten hinzuzufügen, indem Sie einfach neue Objekte hinzufügen |
Konzepte der Vererbung, Polymorphismus, Kapselung werden nicht verwendet | Konzepte der Vererbung, Polymorphismus, Kapselung bilden die Grundlage von OOP |
ZB C, Pascal, FORTRAN | zB Java, Python, C++ |
OOP in ABAP
- SAP entwickelte ABAP zunächst als POP-Sprache.
- Im Laufe der Zeit wurde es jedoch verschoben und in eine OOP-Sprache umgewandelt
- Daher folgt ABAP nun den Grundsätzen der Objektorientierung und Paradigmen wie Objekte.
- Als Teil von OOP verwendet ABAP die Konzepte Vererbung, Überladung, Datenversteck usw. für bessere Funktionalität.
Beginnen wir mit dem Verständnis einiger Grundbegriffe von OOP
Grundbegriffe zu kennen
BEGRIFF | BEDEUTUNG |
Objekt | eine reale Entität mit Daten und Verhalten |
Class | eine komplexe Sammlung von Objekten, die hauptsächlich Datenfelder und Merkmale enthalten, die sich auf die Daten beziehen |
Methode | Verhalten eines Objekts z. funktionsbausteine, die das Objekt ausführt |
Member | entweder das Datenelement oder die Elementfunktion einer Klasse |
Instanz | Synonym für Objekt, normalerweise verwendet als ‚Instanz einer Klasse‘ |
Instanziierung | Erstellen eines neuen Objekts einer Klasse |
Objekte in SAP ABAP
- Ein Objekt ist eine reale Entität, die Daten und Verhalten enthält.
- Diese Eigenschaften und das Verhalten definieren den Zustand des Objekts und die Aktionen, die das Objekt ausführen wird.
- Ein Objekt ist, wie bereits erwähnt, ein Blueprint oder eine Instanz einer Klasse.
- Für z.B. einen Mitarbeiter, ein Buch, einen Apfelbaum – alles sind Objekte.
Erstellen eines Objekts in ABAP
Lassen Sie uns sehen, wie Sie ein Objekt in ABAP erstellen –
Syntax:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
Beispiel:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
Bericht Beispiel:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS ClassDataFlair Definition.Public Section.DATA: dataflairtext(45) VALUE 'Data Flair OOPS tutorial in ABAP: data.'.METHODS: DataFlairMethod.ENDCLASS.CLASS ClassDataFlair Implementation.METHOD DataFlairMethod.Write:/ 'Data Flair OOPS tutorial in ABAP: method.'.ENDMETHOD.ENDCLASS.START-OF-SELECTION.DATA: ClassDataFlair TYPE REF TO ClassDataFlair.CREATE Object: ClassDataFlair.Write:/ ClassDataFlair->dataflairtext.CALL METHOD: ClassDataFlair->DataFlairMethod.
Ausgabe
Daten-OOPS Tutorial in ABAP: Methode.
Klassen in SAP ABAP
- Eine Klasse ist eine komplexe Sammlung von Objekten
- Sie enthält Datenelemente (Merkmale) und Elementmethoden (Funktionen), die zusammen in einer einzigen Entität namens object
- In Klassen werden Objekte erstellt und definiert
- Wir definieren und deklarieren auch Funktionsbausteine in einer Klasse
- Wir können die Privatsphäre einer Klasse beschreiben
- Das bedeutet, wir können definieren, wer alle Zugriff auf bestimmte Daten einer Klasse haben kann
Erstellen einer Klasse in ABAP
Das Erstellen einer Klasse in ABAP hat zwei schritte –
1. Deklaration
Syntax –
CLASS <class_name> DEFINITION.//define classENDCLASS.
Beispiel –
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definition
Syntax –
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
Beispiel –
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
Attribute in SAP ABAP
- Attribute sind die Merkmale der Klasse
- Sie können einen beliebigen vordefinierten Datentyp wie P, F, I usw. haben.
- Wir müssen Attribute im Abschnitt Klassendeklaration deklarieren
- Es gibt zwei Arten von Attributen:
- Instanz: dies schließt den instanzspezifischen Status des Objekts ein, die Änderungen sind für alle Objekte unterschiedlich und dies wird durch DATA deklariert
-
- Statisch: wenn wir also einen Status ändern, können alle anderen Objekte die Änderung sehen, die durch die Anweisung CLASS-DATA deklariert wird
Methoden in SAP ABAP
- Eine Methode ist ein Modul oder eine Funktion
- Es ist das Verhalten des Objekts einer Klasse
- Eine Methode kann auf jedes Merkmal einer Klasse zugreifen
- Sie enthält Aktionen, die von Objekten ausgeführt werden, die die Klasse aufrufen
- Die Methodendefinition kann Parameter enthalten oder nicht, die übergeben werden, wenn die Methode ist mit dem Namen
- können wir eine Methode mit den Anweisungen METHOD und ENDMETHOD definieren
Syntax:
METHOD…ENDMETHOD
Zugriff auf Attribute und Methoden in SAP ABAP
1. Auf Methoden und Attribute können Objekte der Klasse
2 zugreifen. Die Zugriffsspezifizierer – öffentlich, privat und geschützt – funktionieren genauso wie für Klassenzugriffsspezifizierer
- Wenn wir sie als öffentlich deklarieren, kann von jeder Klasse auf sie zugegriffen werden
- Wenn wir sie als privat deklarieren, kann von keiner Klasse auf sie zugegriffen werden
- Wenn wir sie als geschützt deklarieren, kann nur durch Vererben von Klassen auf sie zugegriffen werden
ein Beispiel, wie man Klassen, Attribute und Methoden schreibt und darauf zugreift –
Example:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Data: dataflairtext01 Type char25 Value 'Public Data Flair'. Methods dataflairmethod. PROTECTED Section. Data: dataflairtext02 Type char25 Value 'Protected Data Flair'. PRIVATE Section. Data: dataflairtext03 Type char25 Value 'Private Data Flair'.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'Public Method:', / dataflairtext01, / dataflairtext02, / dataflairtext03. Skip. EndMethod.ENDCLASS.Start-Of-Selection. Data: Objectx Type Ref To dataflairclass. Create Object: Objectx. CALL Method: Objectx->dataflairmethod. Write: / Objectx->dataflairtext01.
Ausgabe
Public Data Flair
Protected Data Flair
Private Data FlairPublic Data Flair
Beispiel für statische Attribute in SAP ABAP
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. CLASS-DATA: dataflairname Type char45, dataflairdata Type I. Methods: dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Do 4 Times. dataflairdata = 1 + dataflairdata. Write: / dataflairdata, dataflairname. EndDo. Skip. EndMethod.ENDCLASS.Start-Of-Selection. dataflairclass=>dataflairname = 'ABAP Object Oriented Programming'. dataflairclass=>dataflairdata = 0. Data: Object1 Type Ref To dataflairclass, Object2 Type Ref To dataflairclass. Create Object: Object1, Object2. CALL Method: Object1->dataflairmethod, Object2->dataflairmethod.
Konstruktoren in SAP ABAP
- Konstruktoren sind spezielle Methodentypen
- Wenn wir ein Objekt erstellen, müssen wir es initialisieren und Konstruktoren tun dies die Aufgabe, Daten für die Objekte zu initialisieren
- Das Programm ruft Konstruktoren automatisch auf, wenn ein Objekt der Klasse erstellt wird
- Der Konstruktor löst die enthaltene Operation aus, wenn ein Objekt in der Ausführung neu erstellt wird
Beispiel für ABAP-Konstruktoren
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Methods: dataflairmethod, constructor.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'This is the method'. EndMethod. Method constructor. Write: / 'This is the constructor'. EndMethod.ENDCLASS.Start-Of-Selection. Data Object1 Type Ref To dataflairclass. Create Object Object1.
Ausgabe
ME-Operator in SAP ABAP
- Wenn wir eine Variable innerhalb einer Methode mit einem anderen Wert neu definieren, verwendet diese Methode den neu definierten Wert der Variablen
- Wenn Sie jedoch auf die ursprünglich deklarierter Wert, dann können Sie den ME-Operator verwenden
- Sehen wir uns ein Beispiel für die Verwendung des ME-Operators an
Beispiel für den ME-Operator in ABAP
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section.Data dataflairtext Type char25 Value 'Here we have class value'. Methods dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod.Data dataflairtext Type char25 Value 'Here we have method value'. Write: / ME->dataflairtext, / dataflairtext. ENDMethod.ENDCLASS.Start-Of-Selection. Data objectx Type Ref To dataflairclass. Create Object objectx. CALL Method objectx->dataflairmethod.
Ausgabe
Hier haben wir den Methodenwert
Zusammenfassung
In diesem Tutorial lernten wir die Grundlagen kennen, auf denen ABAP und viele andere Sprachen basieren – objektorientierte Programmierung. Wir haben gelernt, wie sich die Objektorientierung von der Prozedurorientierung unterscheidet, ihre Bedeutung und die wichtigsten Begriffe.
In Teil 2 dieses Tutorials werden wir uns mit weiteren Konzepten der Objektorientierung wie Vererbung, Polymorphismus usw. befassen.