✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
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 transacción SE24 en el ABAP workbench.
Estas clases son almacenadas en el Class Pools en la libreria de clases en el repositorio R/3. Todos los programas ABAP en un sistema R/3 pueden acceder a las clases globales.
Las clases locales se definen en un programa ABAP y sólo pueden ser invocadas desde el programa en el que se han definido.
Definición de 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 estos componentes.
La parte declarativa está comprendida entre las sentencias:
CLASS <class> DEFINITION.
...
ENDCLASS.
La parte declarativa contiene la declaración de todos los componentes de la clase (atributos, métodos, y eventos). cuando se definen clases locales, la parte declarativa pertenece a los datos globales del programa, por tanto se habrá de situar al principio del programa.
Si se declaran métodos en la parte declarativa de una clase, se deberá escribir también su parte de implementación. Ésta es la que va incluida entre las siguientes sentencias:
CLASS <class> IMPLEMENTATION.
...
ENDCLASS.
La parte de la 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.
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. Todos los componentes son declarados en la parte declarativa de la clase. Los componentes definen los atributos de los objetos en una clase.
Hay dos tipos de componentes en una clase, aquellos que existen separadamente para cada objeto de una clase, y aquellos que existen sólo una vez para la clase entera, independientemente del número de instancias. Estos componentes son conocidos como dependientes de instancia o independientes de instancia (o estáticos) respectivamente.
En los objetos ABAP, las clases pueden definir los siguientes componentes:
- Atributos.
- Métodos.
- Eventos.
Atributos: son los campos de datos internos de una clase y pueden tener cualquier tipo de datos ABAP.
Tipos de atributos:
- Dependientes de instancia: donde el contenido de los atributos es específico de cada objeto. Se declaran usando la sentencia DATA.
- Independientes de instancias 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 sólo una vez para la clase. se declaran usando la sentencia CLASS-DATA.
Métodos: son procedimientos internos de una clase que definen el comportamiento de un objeto.
Los métodos pueden acceder a todos los atributos de una clase. Esto les permite cambiar el contenido de los atributos de un objeto.
La definición y la interface de un método son similares a las de los modulos de funciones. Un método se define en la parte declarativa de la clase y se implementa en la parte de implementación usando las sentencias.
METHOD <meth>.
...
ENDMETHOD.
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: estos métodos se declaran usando la sentencia METHODS. Pueden acceder a todos los atributos de una clase y pueden desencadenar todos los eventos de una clase.
- Independientes de instancias o estáticos: estos métodos se declaran usando la sentencia CLASS-METHODS. Sólo 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 (CONSTRUCTOR) o cuando se accede por primera vez a los componentes de la clase (CLASS_CONSTRUCTOR).
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.
Estos métodos se llaman métodos que manejan eventos (event handler methods).
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. En las llamadas normales a métodos, el programa que llama determina los métodos a los que quiere llamar. Estos métodos tienen que existir.
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 de diferente clase, se declara como método manejador de eventos utilizando la adición FOR EVENT OF.
Existen dos tipos de eventos:
- Dependientes de instancia: se declaran con la sentencia EVENTS. Sólo pueden ser desencadenados en un método dependiente de instancia.
- Independientes de instancias o estáticos: se declaran con la sentencia CLASS-EVENTS. todos los métodos pueden desencadenar eventos estáticos. Los eventos estáticos son el único tipo de eventos que pueden ser desencadenados por un método estático.
Tipos y constantes
Se pueden definir tipos de datos ABAP dentro de una clase con la sentencia TYPES. Los tipos de datos no son específicos de cada instancia y existen una sola vez para todos los objetos de la clase.
Las constantes son un tipo especial de atributos estáticos. Su valor se fija cuando son declaradas y no puede ser cambiado. Se declaran usando la sentencia CONSTANTS. Las constantes existen sólo una vez para todos los objetos de la clase.
Visibilidad de una clase
La parte declarativa o definición de una clase se divide en tres áreas de distinta visibilidad:
CLASS <class> DEFINITION.
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
Estas tres áreas definen la visibilidad externa de los componentes de la clase, esto es, la interface entre la clase y el usuario.
Cada componente de una clase ha de ser asignado a una de estas tres secciones:
- PUBLIC SECTION: todos los componentes declarados en la sección pública son accesibles para todos los usuarios de la clase y para todos los métodos de la clase y de cualquier clase que herede de ella. Los componentes públicos conforman la interface entre la clase y el usuario.
- PROTECTED SECTION: todos los componentes declarados en la sección protegida son accesibles para todos los métodos de la clase y de las clases que heredan de ella. los componentes protegidos conforman la interface entre una clase y todas sus subclases.
- PRIVATE SECTION: los componentes declarados en la sección privada son sólo visibles en los métodos de la misma clase. Los componentes privados no forman parte de la interface externa de la clase.
 
 
 
Sobre el autor
Publicación académica de Jorge Luis Leal Marquez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jorge Luis Leal Marquez
Profesión: Analista de Sistemas - Venezuela - Legajo: CD46R
✒️Autor de: 113 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP BI / BW BO Nivel Inicial
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Profesional del área de tecnológica, enfocado a garantizar la continuidad de las operaciones. consultor abap.
Certificación Académica de Jorge Leal