objektorienteret SAP ABAP – objekter og klasser
i denne vejledning lærer vi om et af de principper, som ABAP er bygget på – objektorienteret programmering.
vi vil lære om, hvad OOP betyder, og også hvad det indebærer i SAP ABAP ‘ s verden.
Hvad er OOP?
- objektorienteret programmering opdeler opgaver i objekter, der har data og funktion.
- denne metode gør programmeringen forståelig, fleksibel og genanvendelig.
- objektorienteret programmering (OOP) blev skabt med enkelhed og veltalenhed i tankerne.
- det får folk til at kommunikere klart, udveksle information og ideer ved hjælp af et fælles sprog – objektets sprog.
- disse objekter består af deres to hovedkarakteristika-egenskaber (data) og adfærd (eller funktioner)
de vigtigste egenskaber ved OOP er–
- dataabstraktion
- indkapsling
- vægt på data snarere end procedure
- brug af virkelige enheder kaldet ‘objekt’
- databeskyttelse og beskyttelse
Hold dig opdateret med nyeste teknologi tendenser
Deltag DataFlair på Telegram!!
POP vs OOP
Procedureorienteret programmering (POP) nærmer sig problemer i en top-ned-metode. Det understreger procedure snarere end data på en lineær måde.
lad os se et par forskelle mellem POP og OOP–
POP | OOP |
POP står for Procedure-orienteret programmering | OOP står for objektorienteret programmering |
det fokuserer på procedure (udfører opgaver) snarere end data (opgaver) | det fokuserer på data / opgaver snarere end procedure |
POP følger top-ned mode i problemløsning | OOP følger bottom – up mode i problemløsning |
det opdeler et program i mindre dele kaldet funktioner eller moduler | det deler et program i mindre dele kaldet objekter |
funktioner Del globale data og data kan ikke skjules for hinanden | funktioner del ikke globale data – du kan bestemme, hvem der kan få adgang til dine data |
der er ikke meget vægt på databeskyttelse | et af de vigtigste fokuspunkter i OOP er databeskyttelse |
udvidelse funktionalitet og tilføjelse af data er kedelig og tidskrævende | det er meget nemt at udvide funktionalitet og tilføje nye data, ved blot tilføjelse af nye objekter |
begreber om arv, polymorfisme, indkapsling anvendes ikke | begreber om arv, polymorfisme, indkapsling danner selve grundlaget for OOP |
E. g. C, Pascal, FORTRAN | E. g. Java, Python, C++ |
OOP i ABAP
- oprindeligt udviklede SAP ABAP som et POPSPROG.
- men som tiden skred frem, skiftede de det og omdannede det til et OOP-sprog
- derfor følger ABAP nu principperne for objektorientering og paradigmer som objekter.
- som en del af OOP bruger ABAP begreberne arv, overbelastning, data skjul osv. for bedre funktionalitet.
lad os begynde med at forstå et par grundlæggende vilkår for OOP
grundlæggende vilkår at vide
TERM | betydning |
objekt | en enhed i den virkelige verden, der har data og adfærd |
klasse | en kompleks samling af objekter, der hovedsageligt indeholder datafelter og egenskaber vedrørende dataene |
metode | opførsel af et objekt, dvs. funktionsmoduler, som objektet udfører |
medlem | enten datamedlemmet eller medlemsfunktionen i en klasse |
Instance | synonym for objekt, normalt brugt som ‘forekomst af en klasse’ |
Instantiation | oprettelse af et nyt objekt af en klasse |
objekter i SAP ABAP
- et objekt er en enhed i den virkelige verden, der indeholder data og adfærd.
- disse egenskaber og adfærd definerer objektets tilstand og de handlinger, som objektet skal udføre.
- et objekt, som tidligere nævnt, er en plan eller forekomst af en klasse.
- For eksempel en medarbejder, en bog, et æbletræ – alle er objekter.
oprettelse af et objekt i ABAP
lad os se, hvordan du opretter et objekt i ABAP –
syntaks:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
eksempel:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
rapport eksempel:
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.
Output
Data Flair ups tutorial i ABAP: metode.
klasser i SAP ABAP
- en klasse er en kompleks samling af objekter
- den indeholder datamedlemmer (egenskaber) og medlemsmetoder (funktioner) sammen indpakket i en enkelt enhed kaldet objekt
- klasser er hvor objekter oprettes og defineres
- vi definerer og erklærer også funktionsmoduler i en klasse
- vi kan beskrive privatlivets fred for en klasse
- hvad dette betyder er, vi kan definere, hvem alle kan have adgang til bestemte data i en klasse
oprettelse af en klasse i ABAP
oprettelse af en klasse i abap har to steps –
1. Erklæring
Syntaks–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Eksempel–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definition
syntaks–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
eksempel–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
attributter i SAP ABAP
- attributter er klassens egenskaber
- de kan have enhver foruddefineret datatype som P, F, I osv.
- vi skal erklære attributter i klassedeklarationssektionen
- attributter er af to typer:
- Instance: dette inkluderer objektets instansspecifikke tilstand, ændringerne er forskellige for alle objekter, og dette erklæres ved dataerklæring
-
- statisk: dette inkluderer fælles tilstand for klassen, der skal deles af alle forekomster af klassen, derfor når vi ændrer en tilstand, kan alle andre objekter se ændringen, erklæret ved KLASSEDATAERKLÆRING
metoder i SAP ABAP
- en metode er et modul eller en funktion
- det er opførslen af objektet i en klasse
- en metode kan få adgang til ethvert kendetegn for en klasse
- den indeholder handlinger, der skal udføres af objekter, der kalder på klassen
- metodedefinition kan eller ikke indeholde parametre, som er bestået, når metoden er er kaldet
- vi kan definere en metode ved hjælp af metode og endmethod udsagn
syntaks:
METHOD…ENDMETHOD
adgang til attributter og metoder i SAP ABAP
1. Metoder og attributter kan tilgås af objekter af klassen
2. Adgangsspecifikatorerne – offentlige, private og beskyttede – fungerer på samme måde som de gør for klasseadgangsspecifikatorer
- hvis vi erklærer dem Offentlige, kan de tilgås af enhver klasse
- når vi erklærer dem private, kan de ikke tilgås af nogen klasse
- hvis vi erklærer dem beskyttede, kan de kun tilgås ved at arve klasser
lad os se et eksempel på, hvordan man skriver klasser, attributter og metoder og får adgang til dem –
eksempel:
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.
udgang
Offentlig Dataflair
beskyttet Dataflair
Private Data FlairPublic Data Flair
eksempel på statiske attributter i 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.
konstruktører i SAP ABAP
- konstruktører er specielle typer metoder
- når vi opretter et objekt, er vi nødt til at initialisere det, og konstruktører gør det, når vi opretter et objekt opgaven med at initialisere data for objekterne
- programmet kalder konstruktører automatisk, når et objekt af klassen er oprettet
- konstruktøren vil udløse operationen inkluderet, når et objekt er nyoprettet i udførelse
eksempel på ABAP-konstruktører
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.
Output
ME-operatør i SAP ABAP
- når vi omdefinerer en variabel inden for en metode med en anden værdi, vil denne metode bruge den omdefinerede værdi af variablen
- men hvis du vil have adgang til en den oprindeligt deklarerede værdi, så kan du bruge me-operatøren
- lad os se et eksempel på at bruge me-operatøren
eksempel på me-operatør i 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.
output
her har vi metodeværdi
Resume
i denne tutorial lærte vi således om det grundlæggende, hvorpå ABAP og mange andre sprog er indbygget objektorienteret programmering. Vi lærte om, hvordan objektorientering er forskellig fra procedureorientering, dens betydning og vigtigste udtryk.
i del #2 i denne tutorial vil vi dykke ned i yderligere begreber om objektorientering som arv, polymorfisme osv.