✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
1. CLASES LOCALES Y GLOBALES
En ABAP, las clases se pueden declarar global o localmente. Las clases globales se definen a través de la tr. SE24 (Generador de clases). Estas clases se almacenan en el Class Pools. Todos los progr. ABAP del sist. R/3 pueden acceder a las clases globales
Las clases locales se definen en 1 progr. ABAP y sólo pueden ser invocadas desde él.
Cuando se usa una clase en 1 progr. ABAP, primero busca una clase local con ese nombre. Si no lo encuentra, entonces busca una clase global. Diferencia clase global-clase local: Sólo su visibilidad
2. DEFINICIÓN DE CLASES LOCALES
Las clases locales se definen entre las sentencias CLASS ... ENDCLASS.
Una definición completa de una clase consta de : una parte declarativa (definición de la clase) y una parte de implementación. La parte declarativa se define entre las sentencias: CLASS <class> DEFINITION. y..... ENDCLASS. La parte declarativa contiene la declaración de todos los componentes de la clase: atributos, métodos y eventos. La parte declarativa de clases locales pertenece a los datos globales del programa--> se tiene que situar al inicio del programa. Si se declaran métodos, también se deberá escribir su implementación entre: CLASS <class> IMPLEMENTATION. y ... ENDCLASS.
3. ESTRUCTURA Y COMPONENTES DE UNA CLASE
Estructura de una clase:
- Una clase contiene componentes
- A cada componente se le asigna un tipo de visibilidad: público, protegido o privado
- Las clases implementan métodos
Hay 2 tipos de componentes en 1 clase: los que existen separadamente para cada instancia y los que existen sólo 1 vez para la clase entera (estáticos o independientes de instancia)
Las clases ABAP pueden definir los siguientes componentes: Atributos, Métodos y Eventos
4. ATRIBUTOS
Son los datos internos de 1 clase y pueden tener cualquier tipo de datos ABAP.
El estado de un objeto viene determinado x el contenido de sus atributos. Las variables referenciadas son un tipo de atributos que permiten crear y acceder a objetos dentro de la clase. Existen 2 tipos de atributos:
- Dependientes de instancia: contenido de atributos es específico de cada objeto. Se declaran con la sentencia DATA
- Estáticos o independientes de instancia: contenido de atributos define el estado de la clase y es válido para todas las instancias de la clase. Se declaran con CLASS-DATA
5. MÉTODOS
Son procedimientos internos de 1 clase que definen el comportamientos de un objeto.
Los métodos pueden acceder a todos los atributos de 1 clase; pueden cambiar el contenido de los atributos. Los atributos privados 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 las de los Módulos de Funciones. Un método se define en la parte declarativa y se implementa en la parte de implementación con: METHOD <meth> ... ENDMETHOD. Los métodos se llaman mediante la sentencia CALL METHOD.
Existen 3 tipos de métodos:
- Dependientes de instancia. Se declaran usando sentencia METHODS. Pueden acceder a todos los atributos de la clase y desencadenar todos los eventos de la clase
- Estáticos o Independientes de Instancia: Se declaran usando CLASS-METHODS. Sólo pueden acceder a los atributos estáticos y desencadenar eventos estáticos.
- Especiales. Hay 2 métodos especiales: CONSTRUCTOR y CLASS_CONSTRUCTOS que se llaman automáticamente al crear un objeto (CONSTRUCTOR) o al acceder por primera vez a los componentes de la clase (CLASS_CONSTRUCTOR)
6. EVENTOS
Son acontecimientos que usan los objetos o clases para desencadenar la ejecución de 1 método en otro objeto o clase.
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 está establecida de antemano, sino en el entorno de ejecución. No tiene por qué existir 1 método manejador para cada evento.
El manejador de eventos determina los eventos a los que tiene que reaccionar. Los eventos de una clase pueden desencadenarse en los métodos de la misma clase con RAISE EVENT. Un método se declara como manejador de eventos usando la adición FOR EVENT OF.
Los eventos tienen una interface de parámetros similar a la de los métodos pero sólo con parámetros de salida. Los parámetros se pasan por el disparador (RAISE EVENT) al manejador de eventos que los recibe como parámetros de entrada. La unión entre trigger y handler se establece dinámicamente mediante la sentencia SET HANDLER.. Disparador y Manejador pueden ser Objetos (eventos depend. de instancia) o Clases (eventos estáticos).
Existen 2 tipos de eventos:
- Dependientes de instancia: se declaran con la sentencia EVENTS. Se desencadenan en un método dependiente de instancia
- Estáticos o Independientes de instancia: se declaran con CLASS-EVENTS. Sólo pueden desencadenarse por un método estático.
7. TIPOS Y CONSTANTES
Se pueden definir tipos ABAP dentro de una clase mediante la sentencia TYPES. Las constantes son un tipo especial de atributos estáticos. No pueden cambiarse y se declaran con la sentencia CONSTANTS.
Al definir tipos en una clase podemos usar READ-ONLY después del tipo de la variable declarada para que el atributo pueda leerse desde fuera de la clase pero sólo podrá modificarse por métodos de la propia clase. Sólo se puede usar READ-ONLY en la declaración de la parte pública de una clase.
8. VISIBILIDAD DE UNA CLASE
La parte declarativa de una clase se divide en 3 áreas de distinta visibilidad:
- PUBLIC SECTION: 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. Son la Interface entre clase y usuario.
- PROTECTED SECTION: Son accesibles para todos los métodos de la clase y de cualquier clase que herede de ella. Son la interface entre una clase y todas sus subclases
- PRIVATE SECTION: Són solo visibles en los métodos de la misma clase. NO forman parte de la interface externa de la clase.
Los atributos a los que puede acceder un usuario son los públicos. Constituyen la interface clase-usuario. Visibilidad privada: son la ocultación o Encapsulación. Es para proteger al usuario de la clase.
 
 
 
Sobre el autor
Publicación académica de David Campillo Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
David Campillo Martinez
Profesión: Administrador de Sistemas - Espa?a - Legajo: PC32Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de David Campillo