✒️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 globales se definen en el generador de clases en la SE24. Son almacenadas en las Class Pools en la librería de clases y pueden acceder a ellas todos los programas ABAP.
Las clases locales se crean en los propios programas ABAP.
- DEFINICIÓN DE CLASES LOCALES
Son un conjunto de sentencias que están entre las sentencias CLASS...ENDCLASS. Tendrán una parte declarativa y una parte de implementación.
La parte declarativa, contiene la declaración de todos los componentes de la clase (atributos, métodos y eventos). Se sitúa al principio del programa. CLASS <class> DEFINITION. ... ENDCLASS.
La parte de implementación contiene la implementación de todos los métodos de la clase. CLASS <class> IMPLEMENTATION. ... ENDCLASS.
- ESTRUCTURA Y COMPONENTES DE UNA CLASE
La estructura de una clase se base en:
- Una clase contiene componentes (atributos, métodos, eventos) que representan sus contenidos, definen los atributos de los objetos de una clase.
- Cada componente se asigna a una sección de visibilidad (público, protegido o privado).
- Las clases implementan métodos.
Hay dos tipos de componentes en una clase, los que existen separadamente para cada objeto de una clase y los que sólo existen una vez para la clase entera, independientemente del número de instancias.
- ATRIBUTOS
Los atributos son los campos de datos internos de una clase y pueden tener cualquier tipo de datos de ABAP.
El estado de un objeto viene determinado por sus atributos. Un tipo de atributo son las variables referenciadas que 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.
Dos tipos de atributos:
- Dependientes de instancia: El contenido de los atributos es especifico de cada objeto. Se declaran usando DATA.
- Independientes de instancia o estáticos: El contenido de los atributos define el estado de la clase y es valido para todas las instancias de la clase. Se declaran usando CLASS-DATA.
- MÉTODOS
Los métodos son procedimientos internos de una clase que definen el comportamiento de un objeto. Pueden tener parámetros de entrada y salida. Los atributos privados de una clase sólo pueden ser cambiados por métodos de la misma clase.
Un método se define en la parte declarativa de la clase y se implementa en la parte de implementación usando: METHOD <método>. ... ENDMETHOD. Los métodos se llaman usando CALL METHOD.
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 los eventos.
- Independientes de instancia o estáticos: Se declaran con la sentencia CLASS-METHODS. Sólo pueden acceder a los atributos estáticos y desencadenar eventos estáticos.
- Especiales: Se declaran con CONSTRUCTOR o CLASS_CONSTRUCTOR que son automáticamente llamados cuando se crear un objeto (CONSTRUCTOR) o cuando se acceder por primera vez a los componentes de una clase (CLASS_CONSTRUCTOR).
- EVENTOS
Los eventos son acontecimientos o sucesos que usan los objetos o las clases para desencadenar la ejecución de un método en otro objeto o clase. Son métodos que manejan eventos (event handler methods).
La unión entre el disparador (trigger) del envento y el manejador (handler) del evento no es establecida de antemano, si no en el entorno de ejecución.
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 métodos de la misma usando RAISE EVENT.
Un método de la misma o diferente clase, se declara como método manejador de eventos usando la adición FOR EVENT OF.
Los eventos sólo tienen parámetros de salida. Los parámetros son pasados por el disparador (sentencia RAISE EVENT) al método manejador de eventos el cual los recibe como parámetros de entrada.
El vínculo entre el disparador y el manejador se establece dinámicamente en el programa usando SET HANDLER. Cuando un evento es disparado, el correspondiente método manejador de eventos es ejecutado en todas las clases registradas para ese manejador.
Dos tipos de eventos:
- Dependientes de instancia: Se declaran con EVENTS. Sólo pueden ser desencadenados en un método dependiente de instancia.
- Independientes de instancia o estáticos: Se declaran con CLASS-EVENTS. Todos los métodos puedne desencadenar eventos estáticos. Los eventos estáticos son el único tipo de eventos que puede ser desencadenado por un método estático.
- TIPOS Y CONSTANTES
Se puede definir tipos de datos dentro de una clase con TYPES. Son especificos de cada instancia y existen una sola vez para todos los objetos de la clase. Con READ ONLY (sólo se puede usar en la parte pública) para que sólo pueda ser modificado por métodos de la misma clase.
Las constantes son un tipo especial de atributos estáticos. Su valor no puede ser cambiado. Se declaran con CONSTANTS. Existen sólo una vez para todos los objetos de la clase.
- VISIBILIDAD DE UNA CLASE
La parte declarativa de una clase se divide en tres áreas de distinta visibilidad:
CLASS <clase> DEFINITION. PUBLIC SECTION. ... PROTECTED SECTION. ... PRIVATE SECTION. ... ENDCLASS.
- Public section: Todos los componentes declarados en esta sección 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: Los componentes declarados en esta sección son accesibles para todos los métodos de la clase y de las clases que heredan de ella. Los componentes protegidos conforman el interface entre una clase y sus subclases.
- Private section: Los componentes declarados en esta sección son sólo visibles en los métodos de la misma. Los componente privados no forman parte de la interface externa de la clase.
 
 
 
Sobre el autor
Publicación académica de Ignacio Mart?n Bolumar, en su ámbito de estudios para la Carrera Consultor ABAP.
Ignacio Mart?n Bolumar
Profesión: Ingeniero Inform?tico - Espa?a - Legajo: ZL84Z
✒️Autor de: 94 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Ignacio Mart?n