
En ABAP, las clases globales y locales se refieren a la visibilidad y alcance de las clases:
-
Clases Globales : Son accesibles desde cualquier programa o módulo dentro del sistema SAP.
-
Clases locales : Son definidas dentro de un programa específico y solo son visibles para ese programa. Se utilizan para funcionalidades particulares de un programa.
-
La transacción SE24 en SAP es conocida como Class Builder o Generador de Clases .
Con la SE24 , puedes:
Es una herramienta clave para el desarrollo de programación orientada a objetos .
- Crear y definir clases globales.
- Establecer atributos, métodos y eventos .
- Gestionar interfaces y herencia entre clases.
- Probar clases en un entorno simulado para verificar su funcionalidad.
-
En las clases de ABAP, los atributos representan las propiedades o características de un objeto. Pueden almacenar datos y definir el estado del objeto. Los atributos se clasifican en varios tipos según su visibilidad y comportamiento.
Tipos de atributos
-
Atributos de instancia :
- Descripción : Son específicos de cada instancia (objeto) de la clase. Cada objeto tiene su propia copia de estos atributos.
- Declaración : Se declara normalmente en la sección PRIVATE o PUBLIC de la clase.
-
Atributos de Clase (Estáticos) :
- Descripción : Son compartidos por todas las instancias de la clase. Solo hay una copia de estos atributos, independientemente de cuántos objetos se crean.
- Declaración : Se declara con la palabra clave CLASS-DATA .
-
Atributos Constantes :
- Descripción : Son atributos cuyo valor no cambia después de ser asignado. Se usan para valores constantes.
- Declaración : Se declaran con la palabra clave CONSTANTS .
- Visibilidad de los atributos
- PÚBLICO : Los atributos son accesibles desde fuera de la clase.
- PRIVADO : Los atributos solo son accesibles desde dentro de la clase.
- PROTECTED : Los atributos son accesibles desde la clase y sus subclases.
-
- Método es una función o procedimiento asociado a una clase, que define el comportamiento de los objetos de esa clase. Los métodos permiten realizar acciones, manipular datos y definir la lógica de negocio.
- Tipos de métodos
-
Métodos de instancia :
- Descripción : Son métodos que operan sobre instancias específicas de una clase. Requieren que se crea un objeto de la clase para poder ser llamados.
- Ejemplo : En una clase Empleado, un método de instancia podría ser calcular_salario, que calcule el salario de un empleado específico.
-
Métodos de Clase (Estáticos) :
- Descripción : Son métodos que pertenecen a la clase en general, no a instancias individuales. Se pueden llamar sin crear un objeto de la clase.
- Ejemplo : En la clase Empleado, un método estático podría ser contar_empleados, que devuelve el número total de empleados creados.
-
Métodos de evento :
-
Los Eventos son mecanismos que permiten que una clase notifique a otras clases cuando ocurre una acción o un cambio de estado. Estos eventos son especialmente útiles para implementar un modelo de programación basado en eventos , donde ciertos objetos (llamados oyentes o suscriptores) pueden reaccionar a eventos desencadenados por otros objetos (llamados emisores o publicadores).
Tipos de eventos
En ABAP, los eventos no se clasifican en tipos específicos como en algunos otros lenguajes, pero se pueden agrupar en:
Cómo Definir y Usar Eventos en ABAP
-
Eventos de clase :
- Descripción : Son eventos definidos dentro de una clase que pueden ser desencadenados por métodos de esa misma clase. Otras clases pueden suscribirse a estos eventos y reaccionar cuando se desencadenan.
- Uso : Se utilizan para comunicar cambios de estado o acciones importantes dentro del sistema.
-
Eventos de Instancia :
- Descripción : Similar a los eventos de clase, pero asociados a instancias específicas de objetos.
- Uso : Permiten que diferentes instancias de una clase reaccionen de manera individual a eventos.
- Definir un evento : Se utiliza la palabra clave EVENTS en la sección pública de la clase.
- Disparar un evento : Se usa la instrucción RAISE EVENT dentro de un método.
- Manejar un Evento : Se define un método manejador que reacciona al evento y se conecta al evento usando SET HANDLER.
Ejemplo práctico:
CLASS ZCL_EMPLEADO DEFINITION.
PUBLIC SECTION.
" Definir un evento
EVENTS: salario_actualizado.
" Método para actualizar salario y disparar el evento
METHODS: actualizar_salario IMPORTING iv_nuevo_salario TYPE p.
ENDCLASS.
CLASS ZCL_EMPLEADO IMPLEMENTATION.
METHOD actualizar_salario.
" Lógica para actualizar el salario
" Disparar el evento
RAISE EVENT salario_actualizado.
ENDMETHOD.
ENDCLASS.
" Programa que usa la clase
DATA: empleado TYPE REF TO ZCL_EMPLEADO.
" Método manejador para el evento
FORM manejar_salario_actualizado.
WRITE: / 'El salario ha sido actualizado'.
ENDFORM.
" Crear instancia de la clase
CREATE OBJECT empleado.
" Conectar el manejador al evento
SET HANDLER manejar_salario_actualizado FOR empleado.
" Actualizar el salario para ver el evento en acción
empleado->actualizar_salario( 5000 ).
-
En este ejemplo:
- Definimos un evento salario_actualizado en la clase ZCL_EMPLEADO.
- Disparamos el evento cuando se actualiza el salario.
- Creamos un manejador ( manejar_salario_actualizado) para reaccionar al evento.
- Eventos Dependientes de Instancia :
- Descripción : Son eventos asociados a una instancia específica de una clase. Cada objeto puede desencadenar su propio evento, y otros objetos pueden suscribirse a esos eventos específicos de esa instancia.
- Ejemplo : Si tienes varias instancias de la clase Empleado, cada una puede tener su propio evento salario_actualizado.
Eventos Independientes de Instancia (Estáticos) :
- Descripción : Son eventos que pertenecen a la clase en general y no a una instancia específica. Cualquier evento desencadenado es compartido por todas las instancias de la clase.
- Ejemplo : Un evento estático podría usarse para notificar cambios que afectan a toda la clase, no solo a una instancia individual.
Dentro de una clase, puedes definir datos utilizando tipos y constantes .
Definición de tipos :
- Tipos de datos : Puedes definir tipos de datos personalizados dentro de una clase utilizando la sección TYPES. Esto es útil para crear estructuras o tipos específicos que se usarán dentro de la clase.
Definición de constantes :
- Constantes : Se definen con la palabra clave CONSTANTS. Estos son valores fijos que no cambian una vez asignados. Son útiles para definir valores constantes como códigos de error, nombres fijos, etc.
Atributos Estáticos y de Instancia :
- Atributos de Instancia : Son específicos para cada objeto creado a partir de la clase.
- Atributos Estáticos : Son compartidos por todas las instancias de la clase. Se declara con CLASS-DATA.
Visibilidad de una clase y sus componentes (atributos, métodos, eventos) determina quién puede acceder a ellos. Hay tres niveles principales de visibilidad:
Niveles de visibilidad :
-
PÚBLICO :
- Descripción : Los componentes declarados como PUBLICson accesibles desde cualquier lugar del programa, es decir, desde cualquier otra clase o programa que instancia la clase o accede a sus componentes.
- Uso : Se utiliza para métodos y atributos que deben ser accesibles desde fuera de la clase.
-
PROTEGIDO :
- Descripción : Los componentes declarados como PROTECTEDson accesibles solo desde la propia clase y desde sus subclases (herencia).
- Uso : Se utiliza para componentes que deben ser accesibles en la clase base y en las clases derivadas, pero no desde fuera de la jerarquía de herencia.
-
PRIVADO :
- Descripción : Los componentes declarados como PRIVATEson accesibles solo desde la propia clase. No son accesibles desde subclases ni desde otras clases o programas.
- Uso : Se utiliza para datos y métodos que deben estar completamente encapsulados dentro de la clase.