Vous êtes sur la page 1sur 69

Object Oriented ABAP

Hyderabad February 24-26th 2006


Instructor: Subhas Katikala.

Workshop Goals
This workshop will enable you to:
Learn object oriented concepts.
Learn the principle of object - oriented
programming.
Learn the application of object
- oriented ABAP.

Course Contents

Object Oriented Concepts


Object Oriented Programming.
Advantages of the Object-Oriented Approach
Classes
Components of a Class

Methods
Syntax and Visibility
Instance Methods and Static Methods
Constructor

Attributes
Syntax and Visibility
Instance Attributes and Static Attributes

Reference Variables
Creating References
Assigning References

Course Contents

Inheritance
Super classes and Subclasses
Visibility
Inheritance and the (Instance) Constructor
Parameters
Redefining Methods in OOABAP
Compatibility
Principles of the Narrowing Cast
Static and Dynamic Components
Final Classes and Methods

Course Contents

Polymorphism
Advantages Compared to Procedural Programming
Abstract Classes and Methods
Component Namespaces in Classes
Interfaces
Defining and Implementing an Interface
Working with Interface Components
Interface References
Narrowing Cast
Widening Cast
Using Several Interfaces
Polymorphism and Interfaces
Polymorphism and Inheritance
Compound Interfaces

Course Contents

Events
Define and Trigger Events
Handle Events
Register and deregister Events
Receive a reference from Sender

Object Oriented
Concepts
What are Objects ?
What Are Objects?

Real world

Model

House

Tree

Data

Method
Method
Method

Data

Method
Method
Method

Crane

Data

Method
Method
Method

Boat

Data

Method
Method
Method

Objects are an abstraction of the real world

Objects are units made up of data and of the


functions belonging to that data

SAP AG 1999

OOPS
Object Oriented Programming
Encapsulation
Inheritance
Polymorphism
Instantiation
Interfacing
Events

Advantages
Simplicity
Explicitness
Maintainability
Future Orientation

Classes
Classes are the central element of object-orientation.
A Class is an abstract description of an object.
Classes are templates for objects.
The attributes of objects are defined by the components of
the class, which describe the state and behavior of objects.

Classes
You define global classes and interfaces in the Class
Builder (Transaction SE24) in the ABAP Workbench.
They are stored centrally in class pools in the class library
in the R/3 Repository.
All of the ABAP programs in an R/3 System can access the
global classes.

Components in a class

Classes
Defining Local Classes

A complete class definition consists of a declaration part and, if required, an


implementation part.

The declaration part of a class <class> is a statement block:


CLASS c1 DEFINITION.
.
ENDCLASS.

If you declare methods in the declaration part of a class, you must also write an
implementation part for it.
CLASS c1 IMPLEMENTATION.
.
ENDCLASS.

Attributes

Classes
Defining Local Classes

Attributes, Types, Constants Syntax

Attributes and Visibility

Instance attributes and Static


attributes

Methods

Methods : Syntax

Methods and Visibility

Instance methods and Static


methods

Instance methods and Static methods :


Example

Constructor

Constructor : Example

Static Constructor : Implementation

Static Constructor : Call Examples

Creating Objects

Reference Variables

Creating Objects : Syntax

Assigning References

Inheritance
Inheritance allows you to derive a new class from an existing class.
You do this using the INHERITING FROM addition in the
CLASS <subclass> DEFINITION INHERITING FROM <superclass>

statement.
The new class <subclass> inherits all of the components of the existing
class <superclass>.
The new class is called the subclass of the class from which it is
derived.
The original class is called the superclass of the new class.

Inheritance

Inheritance :
Syntax

Relationships between super classes


and subclasses
Relationships between super classes and
subclasses

Inheritance and
Visibility

Inheritance and (Instance)


constructor

Parameters and CREATE OBJECT

Redefining Methods in ABAP


Objects

Redefining Methods :
Example

Compatibility and Narrowing


Cast

Principles of the Narrowing


Cast

Static and Dynamic Types:


Example

Static and Dynamic Types for


References

Static and Dynamic Types for


References

Widening the Cast

Widening the cast

Polymorphism

Polymorphism

Polymorphism

Interface

Interfaces exclusively describe the external point


of contact of a class, but they do not contain their
own implementation part.

Defining and Implementing


Interface

Working with Interface


components

Interface References Narrowing


casting

Interface

The assignment of an object reference to an interface


reference is known as a narrowing cast since, as with
inheritance, only a part of the object interface is visible once
you have assigned the reference.

With an interface reference, you can no longer address all


components in the class carrying out the implementation, but
only the components defined in the interface.

Interface references widening


cast

Interface

The widening cast is, as with inheritance, the opposite of the


narrowing cast: here it is used to retrieve an object reference
from an interface reference. Obviously it cannot be statically
checked, since an interface can be implemented by more than
one class.

An object reference cannot be assigned to an interface


reference if it has itself not implemented the corresponding
interface.

Using several Interface

In the above example, one class is implementing several


interfaces. Even if these interfaces contain components with the
same name, they are differentiated in the class carrying out the
implementation by the prefix <interfacename>~.

Polymorphism and
Interface

Events
Objects or Classes use events to trigger Event Handler methods in
other objects or classes.
When an event is triggered any number of Event Handler Methods can
be called.
The events of a class can be raised in the same class using the RAISE
EVENT Statement.
Events have only output parameters which are accepted by the Event
Handler Methods as input parameters.
The link between the trigger and the handler is established dynamically
at runtime using the statement SET HANDLER.

Events Overview

Triggering and handling Events :


Overview

Defining and Triggering


Events

Handling and Registering


Events

Handling Events

Registering for an Event :


Syntax

Deregistration

Registration/Deregistration :
Handler Table

Event handling : Characteristics

Events and Visibility