Foliensatz 6: Von prozeduraler zur objektorientierter Programmierung Flashcards Preview

ERP > Foliensatz 6: Von prozeduraler zur objektorientierter Programmierung > Flashcards

Flashcards in Foliensatz 6: Von prozeduraler zur objektorientierter Programmierung Deck (9)
Loading flashcards...
1

Wie war das prozedurale ABAP vor des Hinzufügens der OO Programmierung?

-allgemeine prozedurale Befehlssystematik und Programmstruktur
-spezielle prozedurale Sprachelemente im ABAP (Open SQL, Konzept der Datentypen, interne Tabellen)
-ABAP Dynpro Standards(PARAMETERS)
-Modularisierung durch Funktionsgruppen und Funktionsbausteine

2

Welche Probleme gab es bei der rein prozeduralen Programmierung?

-Softwareprojekte wurden früher vorwiegend über ihre Funktionalität definiert
-Daten und Funktionalitäten wurden getrennt voneinander gehalten und durch Input-Output-Beziehungen miteinander verknüpft

3

Wie lauten die Paradigmen der Objektorientierung?

-Objekt ist gleich einer Darstellung einer Entität der realen Welt mit Hilfe softwaretechnischer Mittel
-Konzept ist, Prozesse der Software-Objekte gleichartig wie in der realen Welt ablaufen zu lassen
-Datenzustände = Attribute (Eigenschaften)
-Datenverhalten = Methoden (Prozedurcode)
-Kapselung ist, indem Attribute und zugehörige Methoden in einem Objekt zusammengefasst werden

4

Wie ist die Grundstruktur einer (lokalen) Klasse in ABAP-Objects?

1. programmglobaler Deklarationsteil (optional), dazu zählen programmlokale Datentypen und Dynpro-Objekte.
2. Definitionen("CLASS.....DEFINITION") (obligatorisch), dazu zählen Datentypen, Objekttypen(Klassen, Interfaces), Datenobjekte (Variable, Konstante), Feldsymbole
Datenobjekte sollten nur als Attribute von Klassen deklariert werden, wegen der Kapselung
3. Implementierungsteil (obligatorisch), dazu zählen jede nicht deklarative Anweisung, die Element eines Verarbeitungsblocks sein kann = Methode, Prozeduren, Funktionsbausteine

5

Wodurch unterscheiden sich lokale und globale Klassen?

-globale Klassen sind immer dann zu verwenden, wenn gleichartige Objekte in verschiedenen Programmen benötigt werden, werden mithilfe des ClassBuilder/ObjectNavigator im ClassPool angelegt
-lokale Klassen sind nur in dem Programm sichtbar, in dem sie definiert sind, werden mit ABAP-Editor/ObjectNavigator in der Umgebung eins ausführbaren Programms angelegt
-Objekte lokaler Klassen können nur im gleiche ABAP-Programm verwendet werden
-Objekt globaler Klassen können in jedem Programm verwendet werden
-Klassen werden im Deklarationsteil eines Programms vereinbart
-bei beiden kann man spezifizieren durch eine umfangreiche Struktur von Dialogmasken ("Karteikarten") unterstützt

6

Können Sie Objekte einer globalen Klasse direkt verwenden (ansprechen)?

Kein direkter Zugriff möglich. Um diese zu verwenden müssen Objekte deklariert und zur bezogenen Klasse referenziert werden. Dies erfolgt mit Hilfe von Objektreferenzvariablen.
-enthalten Adressen eines Objekts im Speicher
-initial (vorbelegt) oder zeigen genau auf ein Objekt

7

Was sind statische Attribute/Methoden?

-klassenbezogen, nur einmal pro Klasse vorhanden
-dieselbe Gültigkeit wie Klasse
-statische Methoden können nur auf statische Atribute zugreifen und statische Ereignisse auslösen
-auf Vererbungspfad nicht redefinierbar
-statische Objekte vorteilhaft, wenn alle Klassenobjekte auf dieselbem Daten zugreifen sollen

8

Eine Klasse myclassliefert aus einer Datenbank Daten von Flugverbindungen. Hierzu muss eine Fluggesellschaft (über ihre ID ‐z.B. LH) ausgewählt werden. Beschreiben Sie kurz, wie Sie den Zugriff modellieren würden.

1.Deklaration der Objektreferenzvariablen:
DATA oref TYPE REF TO myclass.

Erzeugung des Instanz-Objekts:
CREATE OBJECT oref [TYPE myclass] .

Zugriff auf Methoden der Instanz:
oref->methode(parameter = Wert).
(oref ist die Objektrefrenzvariable)

9

Was sind die Ziele der OOP?

-vereinfachtes Softwaredesign
-besseres Verständnis seitens fachkundiger Auftraggeber
-effektivere Wartung
-hohe Wiederverwendbarkeit
-im Idealfall werden Attribute eines Objekts nur durch seine Methoden verändert und nicht direkt durch den Verwender eines Objektes, dadurch Objekt stets in einem konsisten Zustand