objektorienterad SAP ABAP – objekt och klasser
i den här handledningen lär vi oss om en av de principer som ABAP bygger på – objektorienterad programmering.
vi kommer att lära oss om vad OOP betyder, och även vad det innebär i SAP ABAPS Värld.
Vad är OOP?
- objektorienterad programmering bryter ner uppgifter i objekt som har data och funktion.
 - denna metod gör programprogrammering förståelig, flexibel och återanvändbar.
 - objektorienterad programmering (OOP) skapades med enkelhet och vältalighet i åtanke.
 - det gör att människor kommunicerar tydligt, utbyter information och tankar med ett gemensamt språk – objektets språk.
 - dessa objekt består av deras två huvudegenskaper-egenskaper (data) och beteende (eller funktioner)
 
de viktigaste egenskaperna hos OOP är–
- dataabstraktion
 - inkapsling
 - betoning på data snarare än procedur
 - användning av verkliga enheter som kallas ’objekt’
 - datasekretess och skydd
 
 Håll dig uppdaterad med de senaste tekniktrenderna
 gå med i DataFlair på Telegram!!
POP vs OOP
Procedurorienterad programmering (POP) närmar sig problem i en top-down-metod. Det betonar förfarande snarare än data på ett linjärt sätt.
Låt oss se några skillnader mellan POP och OOP–
| POP | OOP | 
| POP står för Procedure-Oriented programming | OOP står för objektorienterad programmering | 
| den fokuserar på procedur (gör uppgifter) snarare än data (uppgifter) | den fokuserar på data / uppgifter snarare än förfarande | 
| POP följer top-down mode i problemlösning | OOP följer bottom-up mode i problemlösning | 
| det delar ett program i mindre delar som kallas funktioner eller moduler | det delar ett program i mindre delar som kallas objekt | 
| Funktioner Dela globala data och data kan inte döljas från varandra | Funktioner Dela inte globala data – du kan bestämma vem som kan komma åt dina data | 
| det finns inte mycket betoning på dataskydd | en av huvudpunkterna i OOP är dataskydd | 
| utöka funktionalitet och tillägg av data är tråkiga och tidskrävande | det är mycket lätt att utöka funktionalitet och lägga till nya data, genom att helt enkelt lägga till nya objekt | 
| begrepp av arv, polymorfism, inkapsling används inte | begrepp av arv, polymorfism, inkapsling utgör själva grunden för OOP | 
| T. ex. C, Pascal, FORTRAN | t. ex. Java, Python, C++ | 
OOP i ABAP
- ursprungligen utvecklade SAP ABAP som ett POPSPRÅK.
 - men när tiden gick, skiftade de den och förvandlade den till ett OOP-språk
 - därför följer ABAP nu principerna för objektorientering och paradigmer som objekt.
 - som en del av OOP använder ABAP begreppen arv, överbelastning, dataskydd etc. för bättre funktionalitet.
 
Låt oss börja med att förstå några grundläggande termer av OOP
grundläggande termer att veta
| TERM | betydelse | 
| objekt | en verklig enhet som har data och beteende | 
| klass | en komplex samling objekt som huvudsakligen innehåller datafält och egenskaper som hänför sig till data | 
| metod | ett objekts beteende, dvs. funktionsmoduler som objektet utför | 
| medlem | antingen data medlem eller medlem funktion av en klass | 
| instans | synonym för objekt, vanligtvis används som ’instans av en klass’ | 
| Instantiation | skapa ett nytt objekt i en klass | 
objekt i SAP ABAP
- ett objekt är en verklig enhet som innehåller data och beteende.
 - dessa egenskaper och beteende definierar objektets tillstånd och de åtgärder som objektet ska utföra.
 - ett objekt, som nämnts tidigare, är en ritning eller instans av en klass.
 - för t.ex. en anställd, en bok, ett äppelträd – alla är föremål.
 
skapa ett objekt i ABAP
Låt oss se hur man skapar ett objekt i ABAP –
Syntax:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
exempel:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
rapportera exempel:
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.
utgång
data Flair Oops handledning i ABAP: metod.
klasser i SAP ABAP
- en klass är en komplex samling objekt
 - den innehåller datamedlemmar (egenskaper) och medlemsmetoder (funktioner) tillsammans inslagna i en enda enhet som heter objekt
 - klasser är där objekt skapas och definieras
 - vi definierar och deklarerar också funktionsmoduler i en klass
 - vi kan beskriva integriteten för en klass
 - vad detta betyder är att vi kan definiera vem som alla kan ha tillgång till specifika data i en klass
 
skapa en klass i ABAP
skapa en klass i ABAP har två steg –
1. Förklaring
Syntax–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Exempel–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definition
Syntax–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
exempel–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
attribut i SAP ABAP
- attribut är egenskaperna hos klassen
 - de kan ha någon fördefinierad datatyp som P, F, I, etc.
 - vi måste deklarera attribut i klassdeklarationsavsnittet
 -  attribut är av två typer:
- instans: detta inkluderar objektets instansspecifika tillstånd, ändringarna är olika för alla objekt och detta förklaras av datadeklaration
 
 
- 
- statisk: detta inkluderar gemensamt tillstånd för klassen som ska delas av alla instanser av klassen, därför när vi ändrar ett tillstånd kan alla andra objekt se ändringen, deklarerad av KLASSDATADEKLARATION
 
 
metoder i SAP ABAP
- en metod är en modul eller en funktion
 - det är beteendet hos objektet i en klass
 - en metod kan komma åt någon egenskap hos en klass
 - den innehåller åtgärder som ska utföras av objekt som anropar klassen
 - Metoddefinition kan eller inte kan innehålla parametrar, som passeras när metoden är kallas
 - vi kan definiera en metod med metod och ENDMETHOD uttalanden
 
Syntax:
METHOD…ENDMETHOD
åtkomst till attribut och metoder i SAP ABAP
1. Metoder och attribut kan nås av objekt i klassen
2. Åtkomstspecifikationerna – offentliga, privata och skyddade – fungerar på samma sätt som de gör för klassåtkomstspecifikatorer
- om vi förklarar dem offentliga kan de nås av någon klass
 - när vi förklarar dem privata kan de inte nås av någon klass
 - om vi förklarar dem skyddade kan de bara nås genom att ärva klasser
 
Låt oss se ett exempel på hur man skriver klasser, attribut och metoder och får tillgång till dem –
exempel:
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.
utgång
Public Data Flair
Protected Data Flair
Private data FlairPublic Data Flair
exempel på statiska attribut 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 är speciella typer av metoder
 - när vi skapar ett objekt måste vi initiera det och konstruktörer gör det arbetet med att initiera Data för objekten
 - programmet anropar konstruktörer automatiskt när ett objekt i klassen skapas
 - konstruktören kommer att utlösa åtgärden ingår när ett objekt är nyskapade i utförande
 
exempel 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ören i SAP ABAP
- när vi omdefinierar en variabel inom en metod med ett annat värde, kommer den metoden att använda det omdefinierade värdet för variabeln
 - men om du vill komma åt en variabel med ett annat värde det ursprungligen deklarerade värdet, då kan du använda Me-operatören
 - Låt oss se ett exempel på att använda Me-operatören
 
exempel 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
här har vi metodvärde
sammanfattning
således lärde vi oss i denna handledning om grunderna som ABAP och många andra språk bygger på – objektorienterad programmering. Vi lärde oss om hur objektorientering skiljer sig från procedurorientering, dess betydelse och viktigaste termer.
i del # 2 i denna handledning kommer vi att dyka in i ytterligare begrepp om objektorientering som arv, polymorfism etc.




