✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
La definición de Clases, Atributos, Métodos y Eventos
1 - Las clase locales y globales.
Las clase globales se definen SE24 en el abap workbench. Se almacenan en el Class Pools
Las clase locales se definen en un programa abap y solo pueden ser invocadas desde el programa en el que se han definido.
Cuando se usa una clase en ABAP , el sistema primero busca una clase local con el nombre especifico, si no encuentra busca una clase global.
2 - Definicion de clases Locales.
sentencias CLASS .. ENDCLASS.
Consta de una parte declarativa (definicion de clase de los componentes), y una parte de implementacion clase (implementan los componentes)
- Definicion de clase
CLASS counter DEFINITION.
PUBLIC SECTION.
METHODS: set IMPORTING value(set_value) TYPE i.
increment,
get EXPORTING value(get_value) TYPE i.
PRIVATE SECTION.
DATA count TYPE i.
ENDCLASS.
- Implementacion de clase.
CLASS counter IMPLEMENTATION.
METHOD: set.
count = set_value.
ENDMOTHOD
METHOD: increment.
ADD 1 TO count.
ENDMOTHOD
METHOD: get.
get_value = count.
ENDMOTHOD
ENDCLASS
3 - La estructura y los componentes de una clase.
Se define basandose en :
- una clase contiene componentes (definen los atributos)
- cada componente se asigna a una seccion de visibilidad.
- las clase implementan metodos.
Las clase pueden definir:
- atributos
- metodos
- eventos
4 - Los atributos.
Son campos de datos internos de una clase y pueden tener cualquier tipo de datos ABAP.
El estado de un objeto esta definido por el contenido de sus atribustos.
Tipo de atrubuto es la variable referenciada: permiten crear y acceder a los objetos.
Existen 2 tipos de atrubutos:
- dependientes de instancias: el contenido de los atributos es especifico de cada objeto. se declaran con DATA.
- independiente de la instancia o estaticos: el contenido de los atributos definen el estado de la clase y es valido
para todas las instancia de la clase .
Los atributos estaticos solo existen una sola vez para la clase. se declaran usando CLASS-DATA.
Todos los objetos de una clase pueden acceder a sus atributos estaticos.
5 - Los metodos.
Son procedimientos internos de una clase que definen el comportamiento de un objeto.
Pueden acceder a los atrubutos de una clase (cambiar el contenido por ejemplo).
Poseen una interfaces con parametros. Les permite recibir valors couando son invocados y devolver valores despues de la llamada.
Los atributos privando son modificados solo por metodos de la clase.
La definicion y la interface de un metodo son similares a un modulo de funcion.
Los metodos se llaman mediante CALL METHOD
Existen 3 tipos de metodos:
- Dependiente de instancias: se declaran con METHODS. Acceden a todos los atributos de la clase y pueden
desencadenar todos los eventos de una clase.
- Estaticos: se declaran con CLASS-METHODS. solo pueden acceder a los atributos estaticos y desencadenar eventos estaticos.
- Especiales: ademas de CALL METHOD, existen dos metodos especiales:
- CONSTRUCTOR
- CLASS_CONSTRUCTOR.
Son llmados automaticamente cuando se crea un objeto o cuando se accede por primera vez a los componentes de la clase
CLASS_CONSTRUCTOR.
6 - Los eventos.
Son sucesos que utilizan los objetos o las clases para desencadenar la ejecucion de un metodo en otro objeto o clase (event handler methods)
La union del disparador (trigger) y el manejador de eventos (handler) no es establecida de ante mano, si no en el etorno de ejecucion.
Los eventos de una clase pueden ser desencadenados en los metodos de una misma clase usando la sentencia RAISE EVENT.
Un evento de la misma o no clase se declara como metodo manejador de eventos utilizando FOR EVENT OF.
Los eventos son similares a los metodos tiene una una interface con parametros pero solo de salida, son pasados por el disparador (RAISE EVENT)
al manejador que lo recibe como parametro de entrada.
El vinculo entre el disparador y manejador se da por la sentencia SET HANDLER.
Existen dos tipos de Eventos:
- Dependientes de la instancia: se declaran con EVENTS. Son desencadenados por el evento dependiente de la instancia.
- Independiente de la instancia: se declaran con CLASS-EVENTS. Desencadenan eventos estaticos.
7 - Los tipos y las constantes.
Se pueden definir tipos de datos en una clase con TYPES. No son especifico de cada instacia y existen una sola vez para todos
los objetos de la clase.
Las constantes son un tipo especial de atributos estaticos. Se declaran con CONSTANTS. Existen una sola vez para todos los
objetos de la clase.
Audio: Para definir tipos de datos en una clase se puede usar READ ONLY (solo se puede usar dentro de la parte public de la clase) luego de escribir el tipo de la variable. Es permite que pueda
ser leido por fuera de la clase pero modificados por metodos de la clase.
8 - La visibilidad de una clase.
La definicion de una clase se divide en 3 areas de distinta visibilidad.
CLASS <class> DEFINITION.
PUBLIC SECTION.
...
PROTECTED SECTION.
....
PRIVATE SECTION.
..
ENDCLASS.
Estas areas definen la visibilidad externa de los componentes de la clase ( la interface entre la clase y el user).
PUBLIC SECTION: son accesible para todos los usuarios de la clase y para todos los metodos de la clase y de cualquier clase
que herede de ella. Son la interfaces entre la clase y el usuario.
PROTECTED SECTION: Son accesibles para todos los metodos de la clase y de la clase que heredan de ella. Conforman la interfaces
entre la clase y todas sus subclase.
PRIVATE SECTION: Solo son visible en los metodos de la misma clase. No forman parte de la interface externa de la clase.
Audio: Los atributos a los que pude acceder directamente un usuarios, son los atributos publicos. La pater privada se la conoce como encapsulacion.
 
 
 
Sobre el autor
Publicación académica de Pablo Adrian Oggero, en su ámbito de estudios para la Carrera Consultor ABAP.
Pablo Adrian Oggero
Profesión: Scrum - Analista Funcional - Argentina - Legajo: MC99M
✒️Autor de: 182 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial