Object Oriented SAP ABAP – Objects and Classes
în acest tutorial, vom învăța despre unul dintre principiile pe care este construit ABAP – programarea orientată pe obiecte.
vom afla despre ce înseamnă OOP și, de asemenea, ce implică în lumea SAP ABAP.
ce este OOP?
- programarea orientată pe obiecte descompune sarcinile în obiecte care au date și funcții.
- această metodă face programarea software-ului ușor de înțeles, flexibil și reutilizabil.
- programarea orientată pe obiecte (Oop) a fost creată cu simplitate și elocvență în minte.
- îi face pe oameni să comunice clar, să facă schimb de informații și idei folosind un limbaj comun – limbajul obiectelor.
- aceste obiecte sunt alcătuite din cele două caracteristici principale – proprietăți (date) și comportament (sau funcții)
principalele caracteristici ale OOP sunt–
- abstractizarea datelor
- încapsulare
- accent pe date, mai degrabă decât pe procedură
- utilizarea entităților din lumea reală numite ‘obiect’
- confidențialitatea și protecția datelor
rămâneți la curent cu cele mai recente tendințe tehnologice
Alăturați-vă DataFlair pe telegramă!!
POP vs OOP
programarea orientată pe proceduri (Pop) abordează problemele într-o metodă de sus în jos. Acesta subliniază procedura, mai degrabă decât datele într-un mod liniar.
să vedem câteva diferențe între POP și OOP–
POP | OOP |
POP înseamnă programare orientată pe proceduri | OOP înseamnă programare orientată pe obiecte |
se concentrează mai degrabă pe procedură (efectuarea sarcinilor) decât pe date (SARCINI) | se concentrează mai degrabă pe date/sarcini decât pe procedură |
POP urmează moda de sus în jos în rezolvarea problemelor | OOP urmează moda de jos în sus în rezolvarea problemelor |
acesta împarte un program în părți mai mici numite funcții sau module | împarte un program în părți mai mici numite obiecte |
funcții partajați date globale și datele nu pot fi ascunse unele de altele | funcțiile nu partajează date globale – puteți decide cine vă poate accesa datele |
nu se pune prea mult accent pe protecția datelor | unul dintre principalele puncte de interes în OOP este protecția datelor |
extinderea funcționalității și adăugarea de date este obositoare și consumatoare de timp | este foarte ușor să extindeți funcționalitatea și să adăugați date noi, pur și simplu adăugarea de obiecte noi |
conceptele de moștenire, polimorfism, încapsulare nu sunt utilizate | conceptele de moștenire, polimorfism, încapsulare formează chiar baza OOP |
de exemplu, Pascal, FORTRAN | de exemplu Java, Python, C++ |
OOP în ABAP
- inițial, SAP a dezvoltat ABAP ca limbaj POP.
- cu toate acestea, pe măsură ce timpul a progresat, l-au mutat și l-au transformat într-un limbaj OOP
- prin urmare, ABAP urmează acum principiile orientării obiectului și paradigme precum obiectele.
- ca parte a OOP, ABAP folosește conceptele de moștenire, supraîncărcare, ascunderea datelor etc. pentru o mai bună funcționalitate.
să începem prin a înțelege câțiva termeni de bază ai OOP
Termeni de bază pentru a ști
termen | înțeles |
obiect | o entitate din lumea reală care are date și comportament |
clasa | o colecție complexă de obiecte care conțin în principal câmpuri de date și caracteristici referitoare la date |
metoda | comportamentul unui obiect, adică. module funcționale pe care le efectuează obiectul |
membru | fie membru de date sau funcția de membru al unei clase |
instanță | sinonim al obiectului, folosit de obicei ca instanță a unei clase’ |
instanțierea | crearea unui nou obiect al unei clase |
obiecte în SAP ABAP
- un obiect este o entitate din lumea reală care conține date și comportament.
- aceste caracteristici și comportament definesc starea obiectului și acțiunile pe care obiectul le va efectua.
- un obiect, așa cum am menționat anterior, este un plan sau o instanță a unei clase.
- de exemplu, un angajat, o carte, un măr – toate sunt obiecte.
crearea unui obiect în ABAP
să vedem cum se creează un obiect în Abap –
sintaxă:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
exemplu:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
exemplu de raport:
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.
ieșire
fler de date OOPS tutorial în ABAP: metodă.
clase în SAP ABAP
- o clasă este o colecție complexă de obiecte
- conține membri de date (caracteristici) și metode membre (funcții) împreună înfășurat într-o singură entitate numită obiect
- clasele sunt în cazul în care obiectele sunt create și definite
- de asemenea, definim și declarăm module funcționale într-o clasă
- putem descrie confidențialitatea unei clase
- ce înseamnă acest lucru este, putem defini cine toți pot avea acces la anumite date ale unei clase
crearea unei clase în Abap
crearea unei clase în Abap are două pași –
1. Declarație
Sintaxă–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Exemplu–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definiție
sintaxă–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
exemplu–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
atributele în SAP ABAP
- atributele sunt caracteristicile clasei
- pot avea orice tip de date predefinit, cum ar fi P, F, I etc.
- trebuie să declarăm atributele în secțiunea declarație de clasă
- atributele sunt de două tipuri:
- instanță: aceasta include starea specifică instanței de obiect, modificările sunt diferite pentru toate obiectele, iar acest lucru este declarat de declarație de date
-
- Static: aceasta include starea comună a clasei care urmează să fie împărtășită de toate instanțele clasei, prin urmare, atunci când schimbăm o stare, atunci toate celelalte obiecte pot vedea schimbarea, declarată de instrucțiunea CLASS-DATA
metode în SAP ABAP
- o metodă este un modul sau o funcție
- este comportamentul obiectului unei clase
- o metodă poate accesa orice caracteristică a unei clase
- conține acțiuni care trebuie efectuate de obiecte care apelează la clasa
- definiția metodei poate conține sau nu parametri, care sunt trecuți atunci când metoda este numit
- putem defini o metodă folosind metoda și endmethod declarații
sintaxă:
METHOD…ENDMETHOD
accesarea atributelor și metodelor în SAP ABAP
1. Metodele și atributele pot fi accesate de obiecte din clasa
2. Specificatorii de acces – public, privat și protejat – funcționează la fel ca și pentru specificatorii de acces la clasă
- dacă le declarăm publice, ele pot fi accesate de orice clasă
- când le declarăm private, nu pot fi accesate de nicio clasă
- dacă le declarăm protejate, ele pot fi accesate doar prin moștenirea claselor
să vedem un exemplu despre cum să scrieți clase, atribute și metode și să le accesați –
exemplu:
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.
ieșire
Flair de date publice
Flair de date protejate
Flair de Date Private Flair de date publice
exemplu de atribute statice în 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.
constructori în SAP ABAP
- Constructorii sunt tipuri speciale de metode
- când creăm un obiect, trebuie să îl inițializăm și să Constructori face treaba de inițializare a datelor pentru obiectele
- programul solicită Constructori automat atunci când un obiect al clasei este creat
- constructorul va declanșa operațiunea inclus ori de câte ori un obiect este nou creat în execuție
exemplu de constructori 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.
ieșire
operatorul ME în SAP ABAP
- ori de câte ori vom redefini o variabilă într-o metodă cu o valoare diferită, această metodă va folosi valoarea redefinită a variabilei
- cu toate acestea, dacă doriți să accesați valoarea declarată inițial, atunci puteți utiliza operatorul me
- să vedem un exemplu de utilizare a operatorului me
exemplu de operator me în 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.
ieșire
aici avem valoarea metodei
rezumat
astfel, în acest tutorial, am învățat despre elementele de bază pe care ABAP și multe alte limbi sunt construite – programare orientată pe obiecte. Am aflat despre modul în care orientarea obiectului este diferită de orientarea procedurii, importanța acesteia și termenii cei mai importanți.
în partea # 2 a acestui tutorial, ne vom arunca cu capul în concepte suplimentare de orientare obiect ca moștenire, polimorfism, etc.