✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
Las clases locales y globales
Las clases en ABAP se puede 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.
Cuando se usa una clase en un programa ABAP el sistema busca primero una clase local con el nombre especificado. Si no encuentra ninguna entonces busca una clase global.
Las definiciones de clases locales:
Las clases locales son un conjunto de sentencias que están entre las sentencias CLASS...ENDCLASS.
Las partes 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.
La parte de implementación contiene la implementación de todos los métodos de la clase. Esta parte actúa como un bloqueo, esto quiere decir que cualquier sección de código que no forme parte del bloqueo no será accesible.
La estructura y los 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 de una clase.
Cuando se define una clase, cada componente es asignado a una de las tres distintas secciones de visibilidad que define la interface externa de la clase. Tos los componentes de una clase son visibles dentro de la clase. Además todos comparten el mismo espacio por lo que sus nombres deben ser únicos dentro de la clase.
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.
Existen dos tipos de atributos:
- Dependientes de instancia: donde el contenido de los atributos es especifico de cada objeto. Se declara usando la sentencia DATA.
- Independiente 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.
Métodos: son procedimientos internos de una clase que definen el comportamiento de un objeto. Los metodos pueden acceder a todos los atributos de una clase. Esto les permite cambiar el contenido de los atributos de un objeto.
Los métodos poseen también una interface con parámetros que les permite recibir valores cundo son invocados y devolver valores después de la llamada. Los atributos privados de una clase sólo pueden ser cambiados por métodos de la misma clase.
La definición y la interface de un método son similares a la de los módulos de funciones.
Existen tres tipos de métodos:
- Dependientes de instalación: 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.
- Independiente de instancia 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 CONSTRUCROR y CLESS_CONSTRUCTOR que son automáticamente llamados cuando se crea un objeto (COSTRUTOR) 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).
en una llamada normal a un método, el método puede ser llamado por cualquier número de usuarios.
la unión entre el disparador del evento "trigger" y el manejador del evento "handler" se establece 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, los cuales tienen que existir.
El manejador de eventos determina los eventos a los cuales tiene que reaccionar. No tiene porque existir un método manejador de eventos registrado para cada evento. Los eventos de una clase pueden ser desencadenados en los eventos 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 edici+on FOR EVENT OF.
Los eventos tienen una interface de parámetros similar a la de los métodos, pero solo tienen parámetros de salida. Los parámetros son son pasados por el disparados (sentencia RAISE EVENT) al método manejador de eventos el cual 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, dependiendo de si tenemos eventos dependientes de instancia o eventos estáticos y métodos manejadores de eventos. Cuando un evento es disparado, el método manejador de eventos es ejecutado en todas las clases registradas para ese manejador.
Existen dos tipos de eventos:
- DEPENDIENTES DE INSTANCIA: se declaran con la sentencia EVENTS. Solo pueden ser desencadenados en un método dependiente de instancia.
- INDEPENDIENTES DE INSTANCIA 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 puede ser desencadenado por un método estático.
Los tipos y las constantes:
Se puede 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 pueden ser cambiados. Se declaran usando la sentencia CONSTANTS. Las CONSTANTES existen solo una vez para todos los objetos de la clase.
La visibilidad de una clase:
La parte declarativa o definición de una clase se divide en tres áreas de distintas visibilidad:
Estas tres áreas definen la visibilidad externa de los componentes de la clase, esto es, interface entre la clase y el usuario.
Cada componente de la clase ha de ser asignado a una de estas tres secciones:
- PUBLIC SECTION (Parte Pública): 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 herede de ella. Los componentes públicos conforman la interface entre la clase y el usuario.
- PROTECTED SECTION (Parte Protegida): todos los componentes declarados en la sección protegida son accesibles para todos los métodos de clase y de las clases que heredan ella. Los componentes protegidos conforman la interface entre una clase y todas las subclases.
- PRIVATE SECTION ( Parte Privada): 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 Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 107 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
Certificación Académica de Javier Angel