objektově orientovaný SAP ABAP-objekty A třídy
v tomto tutoriálu se budeme učit o jednom z principů, na kterých je ABAP postaven-objektově orientované programování.
dozvíme se, co znamená OOP, a také to, co to znamená ve světě SAP ABAP.
co je OOP?
- objektově orientované programování rozděluje úlohy na objekty, které mají data a funkce.
- Díky této metodě je programování softwaru srozumitelné, flexibilní a opakovaně použitelné.
- objektově orientované programování (OOP) bylo vytvořeno s ohledem na jednoduchost a výmluvnost.
- umožňuje lidem jasně komunikovat, vyměňovat si informace a nápady pomocí společného jazyka-jazyka objektů.
- tyto objekty se skládají ze dvou hlavních charakteristik-vlastností (dat) a chování (nebo funkcí)
hlavní charakteristiky OOP jsou–
- abstrakce dat
- zapouzdření
- důraz na data spíše než na proceduru
- použití reálných entit zvaných „objekt“
- ochrana A ochrana dat
Zůstaňte informováni o nejnovějších technologických trendech
Připojte se k DataFlair na telegramu!!
POP vs OOP
procedurálně orientované programování (POP) přistupuje k problémům metodou shora dolů. Zdůrazňuje postup spíše než data lineárním způsobem.
podívejme se na několik rozdílů mezi POP a OOP–
POP | OOP |
POP je zkratka pro procedurálně orientované programování | OOP je zkratka pro objektově orientované programování |
zaměřuje se spíše na postup (plnění úkolů) než na data (úkoly) | zaměřuje se spíše na data / úkoly než na postup |
POP sleduje módu shora dolů při řešení problémů | OOP sleduje módu zdola nahoru při řešení problémů |
rozděluje program na menší části zvané funkce nebo moduly | rozděluje program na menší části zvané objekty |
funkce sdílet globální data a data nelze navzájem skrýt | funkce nesdílet globální data – můžete se rozhodnout, kdo má přístup k vašim datům |
není velký důraz na ochranu údajů | jedním z hlavních bodů zájmu v OOP je ochrana dat |
rozšíření funkčnosti a přidávání dat je zdlouhavé a časově náročné | je velmi snadné rozšířit funkčnost a přidat nová data jednoduše přidávání nových objektů |
pojmy dědičnost, polymorfismus, zapouzdření se nepoužívají | pojmy dědičnost, polymorfismus, zapouzdření tvoří samotný základ OOP |
E. G. C, Pascal, FORTRAN | e. g. Java, Python, C++ |
OOP v ABAP
- zpočátku SAP vyvinul ABAP jako POP jazyk.
- nicméně, jak čas postupoval, posunuli jej a transformovali do jazyka OOP
- proto ABAP nyní sleduje principy objektové orientace a paradigmat, jako jsou objekty.
- jako součást OOP používá ABAP pojmy dědičnost, přetížení, skrytí dat atd. pro lepší funkčnost.
začněme pochopením několika základních pojmů OOP
základní pojmy, které je třeba znát
výraz | význam |
objekt | reálná entita, která má data a chování |
Třída | komplexní soubor objektů, které obsahují hlavně datová pole a charakteristiky vztahující se k datům |
metoda | chování objektu, tj. funkční moduly, které objekt provádí |
člen | buď datový člen nebo členská funkce třídy |
Instance | synonymum objektu, obvykle používané jako ‚instance třídy‘ |
instance | vytvoření nového objektu třídy |
objekty v SAP ABAP
- objekt je reálná entita, která obsahuje data a chování.
- tyto vlastnosti a chování definují stav objektu a akce, které objekt provede.
- objekt, jak již bylo zmíněno, je plán nebo instance třídy.
- Pro např. zaměstnance, knihu, jabloň-to vše jsou objekty.
vytvoření objektu v ABAP
podívejme se, jak vytvořit objekt v syntaxi ABAP-
:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
příklad:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
příklad sestavy:
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.
výstup
datový vkus Jejda tutoriál v ABAP: metoda.
třídy v SAP ABAP
- třída je komplexní soubor objektů
- obsahuje datové členy (charakteristiky) a členské metody (funkce) dohromady zabalené do jediné entity nazvané objekt
- třídy jsou tam, kde jsou objekty vytvářeny a definovány
- definujeme a deklarujeme také funkční moduly ve třídě
- můžeme popsat soukromí třídy
- to znamená, že můžeme definovat, kdo všechno může mít přístup ke konkrétním datům třídy
vytvoření třídy v ABAP
vytvoření třídy v ABAP má dvě kroky –
1. Prohlášení
Syntaxe–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Příklad–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definice
syntaxe–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
příklad–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
atributy v SAP ABAP
- atributy jsou charakteristiky třídy
- mohou mít jakýkoli předdefinovaný datový typ jako P, F, I atd.
- musíme deklarovat atributy v sekci deklarace tříd
- atributy jsou dvou typů:
- Instance: to zahrnuje stav objektu specifický pro instanci, změny se u všech objektů liší, a to je deklarováno příkazem DATA
-
- statické: to zahrnuje společný stav třídy, který má být sdílen všemi instancemi třídy, a proto když změníme jeden stav, pak všechny ostatní objekty mohou vidět změnu, deklarovanou příkazem CLASS-DATA
metody v SAP ABAP
- metoda je modul nebo funkce
- je to chování objektu třídy
- metoda má přístup k jakékoli charakteristice třídy
- obsahuje akce, které mají být provedeny objekty, které volají po třídě
- definice metody může nebo nemusí obsahovat parametry, které jsou předány, když je metoda volal
- můžeme definovat metodu pomocí metody a endmethod příkazy
syntaxe:
METHOD…ENDMETHOD
přístup k atributům a metodám v SAP ABAP
1. K metodám a atributům lze přistupovat pomocí objektů třídy
2. Specifikátory přístupu – veřejné, soukromé a chráněné – fungují stejně jako u specifikátorů přístupu ke třídě
- pokud je prohlásíme za veřejné, lze k nim přistupovat jakoukoli třídou
- když je prohlásíme za soukromé, nelze k nim přistupovat žádnou třídou
- pokud je prohlásíme za chráněné, lze k nim přistupovat pouze zděděním tříd
podívejme se na příklad, jak psát třídy, atributy a metody a přistupovat k nim –
příklad:
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.
výstup
veřejný datový Flair
chráněný datový Flair
soukromý datový FlairPublic Data Flair
příklad statických atributů v 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éři v SAP ABAP
- konstruktéři jsou speciální typy metod
- když vytvoříme objekt, musíme jej Inicializovat a konstruktéři vykonávají práci inicializace dat pro objekty
- program automaticky zavolá konstruktory, když je vytvořen objekt třídy
- Konstruktor spustí operaci zahrnutou vždy, když je objekt nově vytvořen při provádění
příklad konstruktorů ABAP
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.
výstup
operátor ME v SAP ABAP
- kdykoli předefinujeme proměnnou v rámci metody s jinou hodnotou, použije tato metoda předefinovanou hodnotu proměnné
- pokud však chcete získat přístup k původně deklarované hodnotě, můžete použít operátor ME
- podívejme se na příklad použití operátora me
příklad operátora me v 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.
výstup
zde máme hodnotu metody
shrnutí
v tomto tutoriálu jsme se tedy dozvěděli o základech, na kterých jsou ABAP a mnoho dalších jazyků postaveny-objektově orientované programování. Dozvěděli jsme se, jak se objektová orientace liší od orientace na proceduru, její význam a nejdůležitější pojmy.
v části #2 tohoto tutoriálu se ponoříme do dalších konceptů objektové orientace, jako je dědičnost, polymorfismus atd.