Professional Documents
Culture Documents
TEORÍA
Programación orientada a objetos
SAP ABAP Programasión
1
SAP ABAP Programación
Programación orientada a objetos
Contenido
1. Introducción .......................................................................................................................... 3
2. Clases – Conceptos ............................................................................................................... 4
3. Tipos de clases: Globales Vs. Locales ................................................................................... 5
4. Definición de una clase local ................................................................................................ 6
5. Utilización de objetos ........................................................................................................... 7
5.1. Objetos .......................................................................................................................... 7
5.2. Referencias a objeto ..................................................................................................... 7
6. Encapsulación ....................................................................................................................... 8
7. Atributos de instancia y atributos estáticos ...................................................................... 10
7.1. Tipos de atributos ....................................................................................................... 10
7.2. Definición de atributos, tipos y constantes ............................................................... 11
8. Métodos estáticos y métodos de instancia ....................................................................... 12
8.1. Declaración de métodos ............................................................................................. 12
8.2. Implementación de métodos ..................................................................................... 13
9. Constructor de instancia y constructor estático ................................................................ 13
2
SAP ABAP Programación
Programación orientada a objetos
1. Introducción
En este ejemplo tenemos tres objetos de la misma clase, todos con distintas
características.
3
SAP ABAP Programación
Programación orientada a objetos
2. Clases – Conceptos
4
SAP ABAP Programación
Programación orientada a objetos
5
SAP ABAP Programación
Programación orientada a objetos
Todos los programas ABAP en un sistema SAP pueden acceder a las clases
globales. Las clases locales son las que se definen dentro de un programa
ABAP. De esta manera, las interfaces y las clases locales pueden ser usadas
solamente en el programa en donde están definidas. Cuando se usa una
clase en un programa ABAP, el sistema primero busca una clase local con el
nombre especificado. Si no se encuentra ninguna, busca una clase global.
Ejemplo:
PUBLIC SECTION.
METHOD establecer_nombre.
6
SAP ABAP Programación
Programación orientada a objetos
nombre = i_nombre.
ENDMETHOD.
METHOD obtener_nombre.
e_nombre = nombre.
ENDMETHOD.
ENDCLASS.
5. Utilización de objetos
5.1. Objetos
Los objetos son instancias de las clases. Cada objeto tiene una identidad
propia y tiene sus propios atributos. Todos los objetos transitorios residen
en el contexto de una sesión interna (área de memoria de un programa
ABAP). Una clase puede tener un número indefinido de objetos (instancias).
7
SAP ABAP Programación
Programación orientada a objetos
Ejemplo:
DATA: gcl_empleado_1 TYPE REF TO empleado,
gcl_empleado_2 TYPE REF TO empleado.
6. Encapsulación
8
SAP ABAP Programación
Programación orientada a objetos
PUBLIC SECTION.
………
PROTECTED SECTION.
………
PRIVATE SECTION.
………
ENDCLASS.
Las tres áreas de visibilidad son la base de una de las más importantes
características de la orientación a objetos, la encapsulación. Cuando se
9
SAP ABAP Programación
Programación orientada a objetos
define una clase hay que tener mucho cuidado en el diseño de los
componentes públicos, intentando declarar tan pocos como sea posible.
Los componentes públicos de las clases globales no pueden ser cambiados
una vez que se ha liberado la clase. Por ejemplo, los atributos públicos son
visibles externamente, y forman parte de la interface entre un objeto y sus
usuarios. Si se quiere encapsular el estado de un objeto completamente no
se tiene que declarar ningún atributo público. Además de definir la
visibilidad de un atributo, se puede proteger también de los cambios
usando la adición READ-ONLY.
Los atributos son los campos de datos internos de una clase y pueden tener
cualquier tipo de datos ABAP. El estado de un objeto viene determinado
por el contenido de sus atributos. Un tipo de atributos son las variables
referenciadas. Estas variables permiten crear y acceder a los objetos, de
manera que si se definen en una clase permiten acceder a otros objetos
desde dentro de la clase.
Elemental
Estructurado
10
SAP ABAP Programación
Programación orientada a objetos
Tipo de tabla
En las sentencias DATA de las clases, solo puede utilizar el suplemento TYPE
para hacer referencia a los tipos de datos.
Con TYPE REF TO, puede indicar un atributo como una referencia.
11
SAP ABAP Programación
Programación orientada a objetos
METHODS <meth>
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
EXPORTING.. [VALUE(]<ei>[)] TYPE type [OPTIONAL]..
CHANGING.. [VALUE(]<ci>[)] TYPE type [OPTIONAL]..
RETURNING VALUE(<r>)
EXCEPTIONS.. <ei>..
CLASS-METHODS <meth>..
IMPORTING
EXPORTING
CHANGING
RETURNING
12
SAP ABAP Programación
Programación orientada a objetos
METHOD <meth>.
...
ENDMETHOD.
13
SAP ABAP Programación
Programación orientada a objetos
METHODS CONSTRUCTOR
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL].
EXCEPTIONS.. <ei>.
CLASS-METHODS CLASS_CONSTRUCTOR.
14
SAP ABAP Programación
Programación orientada a objetos
15