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–

  1. abstrakce dat
  2. zapouzdření
  3. důraz na data spíše než na proceduru
  4. použití reálných entit zvaných „objekt“
  5. 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: data.
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á metoda:
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

Toto je Konstruktor

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 třídy
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.

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna.