✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
Definición de Clases, Atributos, Métodos y Eventos.
1.-Clases locales y globales.
Las clases en ABAP se pueden declarar globalmente o localmente. Las clases globales se definen en el generador de clases a través de la TX SE24 en el ABAP Workbench.
NOTA: TX SE24 Administración de las clases e interfaces definidas en el sistema SAP.
Estas clases son almacenadas en el Class Pools en la librería de clases del repositorio R/3. Todos los programas ABAP en un sistema R/3 pueden acceder a las clases globales.
NOTA: Las clases locales se definen en un programa ABAP y sólo puede ser invocadas desde el programa en el que se han definido.
Cuando se usa una clase en un programa, primero busca una clase local, si no la encuentra, busca una clase global.
2.-Definición de Clases locales.
Las clases locales son el conjunto de sentencias que están entre las sentencias CLASS….ENDCLASS.
Una definición completa de una clase constará de una parte declarativa, lo que se conoce como definición de la clase, en la que se definen los componentes y una parte de implementación, lo que se conoce como implementación de la clase, en la que se implementan los componentes.
Parte declarativa:
CLASS counter DEFINITION.
PUBLIC SECTION.
METHODS: set IMPORTING value(set_value) TYPE i,
increment,
get EXPORTING value(get_value) TYPE i.
PRIVATE SECTION.
DATA count TYPE i.
ENDCLASS.
Contiene la declaración de todos los componentes de la clase (atributos, métodos y eventos). Cuando son locales se sitúan al principio del programa.
Si se declaran métodos en la parte declarativa de una clase, se deberá también escribir su parte de implementación.
Parte de implementación:
CLASS counter IMPLEMENTATION.
METHOD set.
count = set_value.
ENDMETHOD.
METHOD increment.
ADD 1 TO count.
ENDMETHOD.
METHOD get.
get_value = count.
ENDMETHOD.
ENDCLASS.
La parte de implementación contiene la implementación de todos los métodos de la clase. Esta parte actúa como un bloque, esto quiere decir que cualquier sección de código que no forme parte del bloque no será accesible.
3.-Estructura y componentes de una Clase.
La estructura de una clase se define principalmente basándose en:
- Una clase contiene componentes
- Cada componente se asigna a una sección de visibilidad. (público, protegido o privado)
- Las clases implementan métodos
Los componentes de una clase representan sus contenidos. Son declarados en la parte declarativa de la clase. Definen los atributos de los objetos de una clase.
Cuando se define una clase, cada componente es asignado a una de las tres distintas secciones de visibilidad que definen la interface externa de la clase.
Hay dos tipos de componentes, los que existen separadamente para cada objeto de una clase, y los que existen solo una vez para la clase entera. Son conocidos como dependientes de instancia o independientes de instancia (o estáticos)
4.-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.
Existen dos tipos de atributos:
- Dependientes de instancia: donde el contenido de los atributos es específico de cada objeto. Se declaran con la sentencia DATA.
- Independientes de instancia o estáticos: donde el contenido de los atributos define el estado de la clase y es válido para todas las instancias de la clase.
Los atributos estáticos existen solo una vez para la clase. Se declaran con la sentencia CLASS-DATA. Son accesibles desde todo el entorno de ejecución de la clase. Todos los objetos de una clase pueden acceder a sus atributos estáticos.
CLASS contador DEFINITION.
PUBLIC SECTION.
METHODS: set IMPORTIG value(set_value) TYPE i,
incrementar_contador,
get EXPORTING value(get_value) TYPE I.
PRIVATE SECTION.
DATA cont TYPE i. “Atributo dependiente de instancia
CLASS-DATA v_suma TYPE i. “Atributo independiente de instancia
ENDCLASS.
5.-Métodos.
Son procedimientos internos de una clase que definen el comportamiento de un objeto.
Los métodos pueden acceder a los atributos de una clase. Esto les permite cambiarlos.
Permiten recibir y devolver valores a través de parámetros. Los atributos privados de una clase, solo pueden ser cambiados por métodos de la misma clase.
La definición y la interface es similar a la de los módulos de función. Un método se defina en la parte declarativa y se implementa en la parte de implementación.
Se pueden declarar tipos de datos locales y objetos en los métodos de la misma manera que en cualquier otro procedimiento ABAP. Los métodos se llaman mediante la sentencia CALL METHOD.
Existen tres tipos de métodos.
- Dependientes de instancia: se declaran con la sentencia METHODS. Pueden acceder a todos los atributos de una clase y pueden desencadenar todos los eventos de una clase.
- Independientes de instancia: se declaran con la sentencia CLASS-METHODS. Solo pueden acceder a los atributos estáticos y desencadenar eventos estáticos.
- Especiales: además de los métodos normales que se pueden llamar con la sentencia CALL METHOD hay dos métodos especiales llamados CONSTRUCTOR y CLASS_CONSTRUCTOR que son automáticamente llamados cuando se crea un objeto o cuando se accede por primera vez a los componentes de la clase.
6.-Eventos.
Son acontecimientos o sucesos que utilizan los objetos o las clases para desencadenar la ejecución de un método en otro objeto o clase. (event handler methods).
En una llamada normal a un método, este puede ser llamado por cualquier número de usuarios. Cuando un evento es desencadenado, cualquier número de estos métodos puede ser llamado.
La unión entre el disparador del evento “trigger” y el manejador del evento “handler” no es establecida de antemano, si no en el entorno de ejecución.
Los eventos de una clase pueden ser desencadenados en los métodos de la misma clase usando la sentencia RAISE EVENT.
Un método de la misma o diferente clase se declara como método manejador de eventos utilizando la adición FOR EVENT OF.
Los eventos tienen una interface de parámetros similar a los métodos, pero sólo tienen parámetros de salida, que son pasados por el disparador (sentencia RAISE EVENT) al método manejador de eventos que los recibe como parámetros de entrada.
El vínculo de unión entre el disparador y el manejador (trigger y handler) es establecido dinámicamente en el programa usando la sentencia SET HANDLER. El disparador y el manejador pueden ser objetos o clases, dep
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Francisco Ortega Aguilar
Sobre el autor
Publicación académica de Juan Hern?ndez, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hern?ndez
Profesión: Programador Inform?tico - Espa?a - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hern?ndez