Object Oriented SAP ABAP-Objects and Classes

w tym samouczku poznamy jedną z zasad, na których zbudowany jest ABAP-Programowanie obiektowe.

dowiemy się, co oznacza OOP, a także co pociąga za sobą w świecie SAP ABAP.

co to jest OOP?

  • Programowanie obiektowe dzieli zadania na obiekty posiadające Dane i funkcje.
  • ta metoda sprawia, że programowanie jest zrozumiałe, elastyczne i wielokrotnego użytku.
  • Programowanie obiektowe (OOP) zostało stworzone z myślą o prostocie i elokwencji.
  • sprawia, że ludzie komunikują się jasno, wymieniają informacje i idee za pomocą wspólnego języka – języka przedmiotów.
  • obiekty te składają się z dwóch głównych cech-właściwości (danych) i zachowania (lub funkcji)

główne cechy OOP to–

  1. abstrakcja danych
  2. enkapsulacja
  3. nacisk na dane zamiast procedury
  4. wykorzystanie rzeczywistych podmiotów zwanych „obiektem”
  5. prywatność i Ochrona danych

Bądź na bieżąco z najnowszymi trendami technologicznymi
Dołącz do DataFlair na Telegramie!!

POP vs OOP

programowanie zorientowane na procedury (POP) podchodzi do problemów w metodzie odgórnej. Podkreśla procedurę, a nie DANE w sposób liniowy.

zobaczmy kilka różnic między POP i OOP–

POP OOP
POP oznacza programowanie zorientowane na procedury OOP oznacza Programowanie obiektowe
skupia się na procedurze (wykonywanie zadań), a nie na danych (zadania) skupia się na danych/zadaniach, a nie na procedurze
POP podąża za modą odgórną w rozwiązywaniu problemów OOP podąża za modą oddolną w rozwiązywaniu problemów
dzieli program na mniejsze części zwane funkcje lub Moduły dzieli program na mniejsze części zwane obiektami
funkcje udostępniają dane globalne i dane nie mogą być ukryte przed sobą funkcje nie udostępniają danych globalnych-możesz zdecydować, kto może uzyskać dostęp do Twoich danych
nie ma większego nacisku na ochronę danych jednym z głównych punktów zainteresowania w OOP jest ochrona danych
rozszerzenie funkcjonalności i dodawanie danych jest żmudne i czasochłonne rozszerzenie funkcjonalności i dodawanie nowych danych jest bardzo łatwe, po prostu dodawanie nowych obiektów
pojęcia dziedziczenia, polimorfizmu, enkapsulacji nie są używane pojęcia dziedziczenia, polimorfizmu, enkapsulacji stanowią podstawę OOP
np. C, Pascal, FORTRAN np. Java, Python, C++

OOP w ABAP

  • początkowo SAP rozwijał ABAP jako język POP.
  • jednak, w miarę upływu czasu, przenieśli go i przekształcili w język OOP
  • stąd ABAP podąża teraz za założeniami orientacji obiektowej i paradygmatów podobnych do obiektów.
  • w ramach OOP, ABAP wykorzystuje pojęcia dziedziczenia, przeciążania, ukrywania danych itp. dla lepszej funkcjonalności.

Zacznijmy od zrozumienia kilku podstawowych terminów OOP

podstawowe terminy, aby wiedzieć

termin znaczenie
obiekt rzeczywisty byt, który ma Dane i zachowanie
Klasa złożony zbiór obiektów, które zawierają głównie pola danych i właściwości odnoszące się do danych
metoda zachowanie obiektu tzn. moduły funkcyjne, które obiekt wykonuje
element element danych lub funkcja elementu klasy
instancja synonim obiektu, zwykle używany jako 'instancja klasy’
Tworzenie instancji tworzenie nowego obiektu klasy

obiekty w SAP ABAP

  • obiekt jest rzeczywistą jednostką zawierającą dane i zachowanie.
  • te cechy i zachowanie określają stan obiektu i działania, które obiekt będzie wykonywał.
  • obiekt, jak wspomniano wcześniej, jest wzorcem lub instancją klasy.
  • dla np. pracownika, książki, jabłoni – wszystko to są przedmioty.

Tworzenie obiektu w ABAP

zobaczmy jak utworzyć obiekt w ABAP –

składnia:

DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.

przykład:

DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.

przykład raportu:

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.

wyjście

Data Flair OOPS tutorial w ABAP: dane.
Data Flair OOPS tutorial w ABAP: method.

klasy w SAP ABAP

  • klasa jest złożonym zbiorem obiektów
  • zawiera elementy danych (cechy) i metody elementów (funkcje) razem zawinięte w jedną całość o nazwie obiekt
  • klasy są miejscem, w którym obiekty są tworzone i definiowane
  • definiujemy i deklarujemy również moduły funkcyjne w klasie
  • możemy opisać prywatność klasy
  • oznacza to, że możemy zdefiniować, kto może mieć dostęp do konkretnych danych klasy

Tworzenie klasy w ABAP

Tworzenie klasy w ABAP ma dwa kroki –

1. Deklaracja

Składnia–

CLASS <class_name> DEFINITION.//define classENDCLASS.

Przykład–

CLASS dataflairclass DEFINITION.//define classENDCLASS.

2. Definicja

składnia–

CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.

przykład–

CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.

atrybuty w SAP ABAP

  • atrybuty są charakterystyką klasy
  • mogą mieć dowolny wstępnie zdefiniowany typ danych, taki jak P, F, I itp.
  • musimy zadeklarować atrybuty w sekcji deklaracja klasy
  • atrybuty są dwóch typów:
    • instancja: obejmuje to stan obiektu specyficzny dla instancji, zmiany są różne dla wszystkich obiektów i jest to zadeklarowane przez instrukcję danych
    • statyczne: obejmuje to wspólny stan klasy, który ma być współdzielony przez wszystkie instancje klasy, dlatego gdy zmienimy jeden stan, wszystkie inne obiekty będą mogły zobaczyć zmianę, zadeklarowaną przez instrukcję CLASS-DATA

metody w SAP ABAP

  • metoda jest modułem lub funkcją
  • jest to zachowanie obiektu klasy
  • metoda może uzyskać dostęp do dowolnej charakterystyki klasy
  • zawiera akcje do wykonania przez obiekty, które wywołują klasę
  • definicja metody może, ale nie musi, zawierać parametry, które są przekazywane, gdy metoda is nazwane
  • możemy zdefiniować metodę używając instrukcji METHOD I ENDMETHOD

składnia:

METHOD…ENDMETHOD

dostęp do atrybutów i metod w SAP ABAP

1. Metody i atrybuty są dostępne dla obiektów klasy

2. Specyfikatory dostępu – public, private I protected – działają tak samo, jak dla specyfikatorów dostępu do klas

  • jeśli zadeklarujemy je jako publiczne, mogą być dostępne dla dowolnej klasy
  • kiedy deklarujemy je jako prywatne, nie mogą być dostępne dla żadnej klasy
  • jeśli zadeklarujemy je jako chronione, mogą być dostępne tylko przez dziedziczenie klas

zobaczmy przykład jak napisać klasy, atrybuty i metody oraz uzyskać do nich dostęp –

przykład:

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.

wyjście

metoda Publiczna:
Public Data Flair
Protected Data Flair
private Data FlairPublic Data Flair

przykład atrybutów statycznych w 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.

konstruktory w SAP ABAP

  • konstruktory są specjalnymi typami metod
  • kiedy tworzymy obiekt, musimy go zainicjalizować i konstruktory wykonują zadanie inicjalizacji danych dla obiektów
  • program wywołuje konstruktory automatycznie, gdy obiekt klasy jest tworzony
  • konstruktor wywoła operację dołączoną przy każdym nowo utworzonym obiekcie w wykonaniu

przykład konstruktorów 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.

wyjście

to jest konstruktor

Operator ME w SAP ABAP

  • ilekroć przedefiniujemy zmienną w metodzie o innej wartości, ta metoda użyje przedefiniowanej wartości zmiennej
  • jednak jeśli chcesz uzyskać dostęp do pierwotnie zadeklarowana wartość, wtedy można użyć operatora Me
  • zobaczmy przykład użycia operatora Me

przykład operatora Me w 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.

wyjście

tutaj mamy wartość klasy
tutaj mamy wartość metody

podsumowanie

w tym tutorialu dowiedzieliśmy się o podstawach, na których ABAP i wiele innych języków są zbudowane-programowanie obiektowe. Dowiedzieliśmy się o tym, jak orientacja obiektowa różni się od orientacji procedury, jej znaczeniu i najważniejszych terminach.

w części #2 tego samouczka zagłębimy się w dalsze koncepcje orientacji obiektowej, takie jak dziedziczenie, polimorfizm itp.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.