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–

  1. dataabstraktion
  2. inkapsling
  3. betoning på data snarare än procedur
  4. användning av verkliga enheter som kallas ’objekt’
  5. 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: data.
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

Offentlig metod:
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

Detta är konstruktören

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 klassvärde
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.

Leave a Reply

Din e-postadress kommer inte publiceras.