Object Oriented SAP ABAP – Objects and Classes
ebben az oktatóanyagban megismerjük az egyik alapelvet, amelyre az ABAP épül – objektumorientált programozás.
megtudjuk, mit jelent az OOP, és mit jelent az SAP ABAP világában.
mi az OOP?
- az objektumorientált programozás a feladatokat olyan objektumokra bontja, amelyek rendelkeznek adatokkal és funkcióval.
- ez a módszer érthetővé, rugalmasabbá és újrafelhasználhatóvá teszi a szoftverprogramozást.
- az Object-Oriented Programing (OOP) az egyszerűséget és az ékesszólást szem előtt tartva jött létre.
- lehetővé teszi az emberek számára, hogy világosan kommunikáljanak, információt és ötleteket cseréljenek egy közös nyelven – a tárgyak nyelvén.
- ezek az objektumok két fő jellemzőikből állnak – tulajdonságok (adatok) és viselkedés (vagy funkciók)
az OOP fő jellemzői a következők–
- adat absztrakció
- kapszulázás
- az adatok hangsúlyozása az eljárás helyett
- objektumnak nevezett valós entitások használata
- Adatvédelem és adatvédelem
Legyen naprakész a legújabb technológiai trendekkel
csatlakozzon a DataFlair-hez a Telegramon!!
POP vs OOP
az Eljárásorientált programozás (Pop) felülről lefelé irányuló módszerrel közelíti meg a problémákat. Hangsúlyozza eljárás helyett adatok lineáris módon.
nézzünk néhány különbséget a POP és az OOP között–
POP | OOP |
a POP az eljárás-orientált programozást jelenti | az OOP az objektum-orientált programozást jelenti |
az eljárásra (feladatok elvégzésére) összpontosít, nem pedig az adatokra (feladatok) | az adatokra/feladatokra összpontosít, nem pedig az eljárásra |
POP következik felülről lefelé divat problémamegoldás | OOP következik alulról felfelé divat problémamegoldás |
a programot kisebb részekre osztja funkciók vagy modulok | a programot kisebb részekre osztja, amelyeket objektumoknak neveznek |
funkciók globális adatok megosztása és az adatok nem rejthetők el egymás elől | a funkciók nem osztanak meg globális adatokat – eldöntheti, hogy ki férhet hozzá az adataihoz |
nincs nagy hangsúly az adatvédelemre | az OOP egyik fő fókuszpontja az adatvédelem |
a funkcionalitás kiterjesztése és az adatok hozzáadása unalmas és időigényes | nagyon egyszerű a funkcionalitás kiterjesztése és új adatok hozzáadása, egyszerűen új objektumok hozzáadása |
az öröklés, a polimorfizmus, a kapszulázás fogalmait nem használják | az öröklés, a polimorfizmus, a kapszulázás fogalmai képezik az OOP alapját |
pl. C, Pascal, FORTRAN | pl. Java, Python, C++ |
OOP az ABAP-ban
- kezdetben az SAP POP nyelvként fejlesztette ki az ABAP-ot.
- az idő előrehaladtával azonban eltolták és átalakították egy OOP nyelvre
- ezért az ABAP most az objektumorientáció és a paradigmák tételeit követi, mint az objektumok.
- az OOP részeként az ABAP az öröklés, a túlterhelés, az adatok elrejtése stb. a jobb funkcionalitás érdekében.
kezdjük az OOP néhány alapvető fogalmának megértésével
alapvető kifejezések ismerete
kifejezés | jelentése |
objektum | valós entitás, amely adatokkal és viselkedéssel rendelkezik |
Class | objektumok komplex gyűjteménye, amely főként adatmezőket és az adatokra vonatkozó jellemzőket tartalmaz |
módszer | egy objektum viselkedése, pl. az objektum által végrehajtott funkciómodulok |
Tag | vagy egy osztály adattagja vagy tagfüggvénye |
példány | az objektum szinonimája, általában egy osztály példányaként használják’ |
példányosítás | egy osztály új objektumának létrehozása |
objects in SAP ABAP
- az objektum egy valós entitás, amely adatokat és viselkedést tartalmaz.
- ezek a jellemzők és viselkedés határozza meg az objektum állapotát és az objektum által végrehajtandó műveleteket.
- egy objektum, amint azt korábban említettük, egy osztály tervrajza vagy példánya.
- pl. egy alkalmazott, egy könyv, egy almafa – mind tárgyak.
objektum létrehozása az ABAP-ban
nézzük meg, hogyan lehet objektumot létrehozni az ABAP –ban –
szintaxis:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
példa:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
jelentés példa:
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.
kimenet
Data Flair Hoppá bemutató ABAP: módszer.
osztályok az SAP ABAP-ban
- A osztály objektumok összetett gyűjteménye
- adatokat tartalmaz tagok (jellemzők) és tag metódusok (függvények) együtt csomagolva egyetlen entitásba, amelyet objektumnak hívnak
- az osztályok az objektumok létrehozása és meghatározása
- definiálunk és deklarálunk függvénymodulokat is egy osztályban
- leírhatjuk egy osztály magánéletét
- ez azt jelenti, hogy meghatározhatjuk, hogy ki férhet hozzá egy osztály bizonyos adataihoz
osztály létrehozása az ABAP-ban
osztály létrehozása az ABAP-ban két lépések –
1. Deklaráció
Szintaxis–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Példa–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Meghatározás
szintaxis–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
példa–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
az SAP ABAP attribútumai
- az attribútumok az osztály jellemzői
- bármilyen előre meghatározott adattípusuk lehet, például P, F, I stb.
- meg kell állapítania attribútumok osztály deklaráció szakasz
- attribútumok két típusa van:
- példány: ez magában foglalja az objektum példányspecifikus állapotát, a változások minden objektum esetében eltérőek, ezt az ADATNYILATKOZAT deklarálja
-
- statikus: ez magában foglalja az osztály közös állapotát, amelyet az osztály minden példánya megoszt, ezért amikor megváltoztatunk egy állapotot, akkor az összes többi objektum láthatja az osztály-adat utasítás által deklarált változást
módszerek SAP ABAP
- a módszer egy modul vagy függvény
- ez a viselkedés az objektum egy osztály
- a módszer hozzáférhet bármely jellemző egy osztály
- tartalmaz műveleteket kell végrehajtani objektumok, amelyek felhívják az osztály
- módszer definíció tartalmazhat vagy nem tartalmazhat paramétereket, amelyek akkor kerülnek átadásra, amikor a módszer van hívott
- meghatározhatunk egy módszert metódus és ENDMETHOD utasításokkal
szintaxis:
METHOD…ENDMETHOD
attribútumok és módszerek elérése az SAP ABAP-ban
1. A metódusokat és attribútumokat a
2 osztályba tartozó objektumok érhetik el. A hozzáférés – specifikátorok – nyilvános, privát és védett –ugyanúgy működnek, mint az osztály-hozzáférési specifikátoroknál
- ha nyilvánossá nyilvánítjuk őket, akkor bármelyik osztály hozzáférhet hozzájuk
- amikor privátnak nyilvánítjuk őket, nem férhetnek hozzá egyetlen osztályhoz sem
- ha védettnek nyilvánítjuk őket, akkor csak az osztályok öröklésével érhetők el
nézzük meg, hogy a példa osztályok, attribútumok és módszerek írására és elérésére –
példa:
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.
kimenet
Public Data Flair
Protected Data Flair
Private Data FlairPublic Data Flair
példa statikus attribútumokra az SAP ABAP-ban
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.
konstruktorok az SAP ABAP-ban
- a konstruktorok speciális módszerek
- amikor létrehozunk egy objektumot, inicializálnunk kell azt, és meg kell oldanunk, hogy egy objektumot létrehozzunk a konstruktorok elvégzik az objektumok adatainak inicializálását
- a program automatikusan meghívja a konstruktorokat, amikor az osztály objektumát létrehozzák
- a konstruktor elindítja a műveletet, amikor egy objektum újonnan jön létre a végrehajtás során
példa ABAP Konstruktorokra
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 operátor az SAP ABAP-ban
- amikor egy változót egy másik értékű metóduson belül újradefiniálunk, akkor az a metódus a
- változó újradefiniált értékét fogja használni, Ha azonban az eredetileg deklarált érték, akkor használhatja a Me operátort
- lássunk egy példát a Me operátor használatára
példa me operátorra az ABAP-ban
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.
kimenet
itt van a módszer értéke
Összegzés
így ebben az oktatóanyagban megismertük azokat az alapokat, amelyekre az ABAP és sok más nyelv épül – objektumorientált programozás. Megtudtuk, hogy az objektumorientáció miben különbözik az eljárás orientációjától, annak fontosságáról és a legfontosabb kifejezésekről.
ennek az oktatóanyagnak a 2. részében belemerülünk az objektumorientáció további fogalmaiba, mint például az öröklés, a polimorfizmus stb.