Top Banner
Lecture 13 ABAP Objects BCO5647 Applications Programming Techniques (ABAP)
25

Lecture13 abap on line

Aug 20, 2015

Download

Technology

mkpatil
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture13 abap on line

Lecture 13ABAP Objects

BCO5647 Applications Programming Techniques (ABAP)

Page 2: Lecture13 abap on line

2BCO5647

Readings & Objectives

Readings

Keller & Keller Chapter 5Section 5.3

Objectives

This lecture will

Review the Procedural Programming Model

Introduce the Object Oriented Programming Model

Examine how ABAP has applied OO features to its language

Examine how classes are defined in ABAP Objects

Examine how attributes and methods of a class are defined in ABAP Objects

Examine the objects are created in ABAP Objects

Examine how references are assigned in ABAP Objects

Explain the meaning of a constructor and how it is used in ABAP Objects

Discuss the concept of inheritances and how it is used in ABAP Objects

Page 3: Lecture13 abap on line

3BCO5647

The Procedural Programming Model

• Separation of data and functions.

• Non-encapsulated (i.e. direct) access to data.

• Possibility of encapsulating functions using modularization.

Data Data

Data Data

Data

Function

FunctionFunction Function

FunctionFunction FunctionFunction

Page 4: Lecture13 abap on line

4BCO5647

The Procedural Programming Model

• Type definitions.

• Data declarations

• Main program- Calling subroutines- Calling function modules

• Definition of subroutines.

report . . .*--------------------------------types: . . .data: . . .. . .perform form1 . . .call function ‘FB1’.. . .call function ‘FB2’.. . .

*--------------------------------form f1 . . . . . .endform.

Page 5: Lecture13 abap on line

5BCO5647

The Object Oriented Programming Model

Encapsulation of Data and Functions SAP AG 1999

What Are Objects?

Tree

House

Crane

Objects are an abstraction of the real world

Objects are units made up of data and of thefunctions belonging to that data

Real worldModel

DataMethod MethodMethod

DataMethod MethodMethod

DataMethod MethodMethod

Boat

DataMethod MethodMethod

Page 6: Lecture13 abap on line

6BCO5647

The Object Oriented Programming Model

Class

• Gives a general description of objects (“blueprint”)

• Establishes status types (attributes) and behavior (methods)

Object

• Reflection of real world

• Specific instance of a class

lcl_class

Attribute

Attribute

Attribute Method

Method

Page 7: Lecture13 abap on line

7BCO5647

The Object Oriented Programming Model

• ABAP object statements can be used in procedural ABAP programs.

• Objects (classes) contain procedural statements.

report . . .*--------------------------------data: counter type i. wa type kna1.. . .

class lcl_car definition. . . .endclass.

*------ main program ------

counter = counter + 1.create object . . .move wa to . . .

Page 8: Lecture13 abap on line

8BCO5647

The Object Oriented Programming Model

Advantages of the Object-Oriented Programming Model over the Procedural Programming Model

• Improved software structure and consistency in the development process.

• Reduced maintenance effort and less susceptibility to errors.

• Better integration of the customer/user into the analysis, design, and maintenance process.

• Easier and safer possibilities for extending the software.

Page 9: Lecture13 abap on line

9BCO5647

Unified Modeling Language (UML)

• UML is a worldwide standardized modeling language.

• It is used for the specification, construction, visualization and documentation of models for software systems.

• UML contains a number of different diagram types in order to represent different views of a system. These include :

• Class diagrams

• Object diagrams

• Use Case diagrams

• State Diagrams

• Sequence diagrams etc.

Page 10: Lecture13 abap on line

10BCO5647

UML Representation of a Class

• A class is represented by a rectangle in UML notation. First, the class’s name is given, then its attributes, and finally its methods.

• Attributes describe the data that can be stored in the objects of a class. They also determine the status of an object.

• Methods describe the functions that an object can perform. They therefore determine the object’s behavior.

Page 11: Lecture13 abap on line

11BCO5647

UML Class Diagram

A class diagram describes all static relationships between the classes.There are two basic forms of static relationships:

AssociationIn this example: A customer books a car at a rentalcar company.

Generalization / SpecializationIn this example: A car, a bus, and a truck are all vehicles.

Page 12: Lecture13 abap on line

12BCO5647

OO Definitions : Objects

S A P A G 1 9 9 9

T h e O b j e c t ( 1 )

P r i v a t e a c c e s s• E n c a p s u l a t i o n• A s a r u l e , a t t r i b u t e s

P u b l i c a c c e s s• I n t e r f a c e• A s a r u l e , m e t h o d s , e v e n t s

A t t r i b u t e s

E v e n t s

A t t r i b u t e s

M e t h o d s

E v e n t s

N a m e : L H B e r l i n

L e n g t h : 7 0 m

W e i g h t : 3 0 , 0 0 0 k g

l a n d e d

M e t h o d s

f l yl a n d

E x a m p l e : a i r p l a n e

• The object in the above model has two layers: an outer shell and an inner core. Users can only see the outer shell, while the inner core remains hidden.

• Public components (outer shell): the outer shell contains the components of the object that are visible to users.

• Private components (inner core): the components of the inner core (attributes, methods and events) are only visible within the object itself.

Page 13: Lecture13 abap on line

13BCO5647

OO Definitions : Classes

S A P A G 1 9 9 9

C la s s if ic a tio n

P la n e tic k e tP la n e

• In the real world, there are objects, such as various airplanes and plane tickets. Some of these objects are very similar, that is, they can be described using the same attributes or characteristics and provide the same functions.

• Similar objects are grouped together in classes. A class is therefore a description of a quantity of objects characterized by the same structure and the same behavior.

Page 14: Lecture13 abap on line

14BCO5647

Class Definition : Syntax

CLASS <classname> DEFINITION.

. . .

ENDCLASS.

CLASS <classname> IMPLEMENTATION.

. . .

ENDCLASS.

• Definition PartThe class components (e.g. attributes and methods).

• Implementation PartThe method implementations.

• The CLASS statement cannot be nested.

Page 15: Lecture13 abap on line

15BCO5647

Class Definition : Example

REPORT EXAMPLE01 .* Class Definitions.

CLASS lcl_airplane DEFINITION. PUBLIC SECTION. DATA: name type string, weight type i, carrier type string.

METHODS: add_airplane, display_airplane,ENDCLASS.** Class Implementations.*CLASS lcl_airplane IMPLEMENTATION. METHOD add_airplane. . . . ENDMETHOD.

METHOD display_airplane.. . .

ENDMETHOD.ENDCLASS.

Page 16: Lecture13 abap on line

16BCO5647

OO Definitions : Attributes

• Attributes are the data objects within a class. They reflect an objects state.

• All ABAP data types can be used for attributes. The DATA statement is used to declare instance attributes.

• To declare a static attribute, use the CLASS-DATA statement.

CLASS <classname> DEFINITION.

PRIVATE SECTION.. . . types: . . . constants: . . . data: variable1 type local-type, variable2 type global_type, variable3 like variable1,

variable4 type . . . read-only.

variable5 type ref to class-name, variable6 type ref to type-name.

Page 17: Lecture13 abap on line

17BCO5647

OO Definitions : Methods

• Methods are internal procedures in classes that determine the behavior of the objects.

• Methods have a signature (interface parameters and exceptions) that enables them to receive values when they are called and pass values back to the calling program.

• Methods can have any number of IMPORTING, EXPORTING, and CHANGING parameters. All parameters can be passed by value or reference.

SAP AG 1999

Methods

lcl_airplane

...

fly

land

Contain coding

Have an interfaceMethods :

• Contain coding

• Have an interface

Page 18: Lecture13 abap on line

18BCO5647

Class Methods : Syntax

CLASS <classname> DEFINITION.

. . .

METHODS: <methodname> IMPORTING . . . EXPORTING . . . CHANGING . . . RETURNING . . . EXCEPTIONS . . .

ENDCLASS.

CLASS <classname> IMPLEMENTATION.

METHOD <methodname> . . . ENDMETHOD

ENDCLASS.

Page 19: Lecture13 abap on line

19BCO5647

Class Methods : Example

REPORT EXAMPLE02.

CLASS lcl_airplane DEFINITION. PUBLIC SECTION. DATA: name type string, weight type i, carrier type string.

METHODS: init_airplane importing iname type string iweight type i,

display_airplane.ENDCLASS.

CLASS lcl_airplane IMPLEMENTATION.

METHOD init_airplane. name = iname. weight = iweight. carrier = ‘LH’. ENDMETHOD.

METHOD display_airplane. write:/ ‘name :', name. ENDMETHOD.ENDCLASS.

Page 20: Lecture13 abap on line

20BCO5647

Creating Objects

• Objects are created using the statement CREATE OBJECT ref_name . . .

• They can only be created and addressed using reference variables.

• A class contains the generic description of an object.

• During the program runtime, the class is used to create discrete objects (instances) in the memory. (instantiation).

• If this is the first time the class is accessed, the class is also loaded into the memory.

SAP AG 1999

Creating Objects

lcl_airplane

name

weight

... CREATE OBJECT

name: LH Berlinweight: 30,000 kg

Objects can only be created and addressed usingreference variables

Page 21: Lecture13 abap on line

21BCO5647

Creating Objects : Example

REPORT EXAMPLE03.

CLASS lcl_airplane DEFINITION. PUBLIC SECTION. DATA: . . . METHODS: . . .ENDCLASS.

CLASS lcl_airplane IMPLEMENTATION. METHOD init_airplane. . . . ENDMETHOD. METHOD display_airplane. . . . ENDMETHOD.ENDCLASS.

START-OF-SELECTION.DATA : airplane1 TYPE REF to lcl_airplane, airplane2 TYPE REF to lcl_airplane.

CREATE OBJECT airplane1.CREATE OBJECT airplane2.

CALL METHOD airplane1->init_airplane exporting iname = ‘DC40’ iweight = 3500.CALL METHOD airplane1->display_airplane.

Page 22: Lecture13 abap on line

22BCO5647

Assigning References

In the previous example, the CREATE OBJECT statement creates an object in the main memory.

If the following statement is added after the objects have been created :

airplane1 = airplane2

The reference variables will be assigned to each other. Once it has been assigned, airplane1 points to the same object as reference airplane2.

Page 23: Lecture13 abap on line

23BCO5647

Constructors

CREATE

OBJECT

• A constructor is a special method for creating objects with a defined initial state.

• It only has importing parameters and exceptions.

• Exactly one constructor is defined per class.

• It is executed exactly once per instance.

lcl_airplane

name

weight

countconstructor

Page 24: Lecture13 abap on line

24BCO5647

Constructors : Example

REPORT EXAMPLE04.

CLASS lcl_airplane DEFINITION. PUBLIC SECTION. DATA: name type string, weight type i, carrier type string. METHODS: constructor importing icarrier type string.ENDCLASS.

CLASS lcl_airplane IMPLEMENTATION. METHOD constructor. Carrier = icarrier. ENDMETHOD.ENDCLASS.

START-OF-SELECTION.DATA : airplane1 TYPE REF to lcl_airplane, airplane2 TYPE REF to lcl_airplane.

CREATE OBJECT airplane1 exporting icarrier = ‘LH’.CREATE OBJECT airplane2 exporting icarrier = ‘QA’.

Page 25: Lecture13 abap on line

25BCO5647

Inheritance

• Inheritance is a relationship in which one class (the subclass) inherits all the main characteristics of another class (the superclass).

• Inheritance is an implementation relationship that emphasizes similarities between classes.

• The inheritance relationship is often described as an “is-a” relationship: a passenger plane is an airplane.