✒️ABAP POO Los Atributos, los Métodos y los Eventos
ABAP POO Los Atributos, los Métodos y los Eventos
U1-L6
Atributos
- Datos que pueden ser almacenados en los objetos de una clase. (Propiedades)
- El edo de un objeto viene determinado por el contenido de sus atributos
- Un tipo de atributo son las variables referenciadas; permiten crear y acceder a los objetos.
Dependientes de instancia; el contenido es específico de cada objeto. Sentencia DATA.
Independientes de instancia o estáticos; el contenido define el estado de la clase y es válido para todas las instancias de la clase. Sentencia CLASS-DATA. Accesibles desde todo el entorno de ejecución de la clase.
Todos los objetos de una clase pueden acceder a sus atributos estáticos. Si se cambia un atributo estático en un objeto, el cambio es visible en todos.
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
DATA: marca TYPE string. "Dependiente de instancia
CLASS-DATA: nro_vehiculos TYPE i. "Independiente de instancia
ENDCLASS.
Los atributos pueden ser, variables, estructuras o tipos tablas.
Métodos
Procedimientos de una clase que definen el comportamiento de un objeto. Poseen una interface con parámetros para recibir y devolver valores.
Atributos privados, solo pueden ser cambiados por métodos de la misma clase.
Se define en parte declarativa de la clase y se implementa en la parte de implementación:
CLASS classname DEFINITION.
METHODS method_name
[IMPORTING im_par TYPE type_name
EXPORTING ex_par TYPE type_name
CHANGING ch_par TYPE type_name
RETURNING value(re_par) TYPE type_name
EXCEPTIONS exception
RAISING exception_class].
ENDCLASS.
CLASS classname IMPLEMENTATION.
METHOD method_name.
....
ENDMETHOD.
ENDCLASS.
Los métodos se llaman con sentiencia CALL METHOD.
Dependientes de instancia: pueden acceder a todos atributos y desencadenar todos los eventos de una clase. Se declaran con sentencia METHODS.
Independientes de instancia: sólo pueden acceder a los atributos estáticos y desencadenar eventos estáticos. Se declaran con sentencia CLASS-METHODS.
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
METHODS asignar_tipo IMPORTING a_marca TYPE string "Método de instancia
a_modelo TYPE string.
CLASS-METHODS obtener_nro_vahiculos RETURNING VALUE(nro) type i. "Método estático
DATA: marca type string, "Atributos dependientes de instancia
modelo type string.
CLASS-DATA nro_vehiculos type i. "Atributo independiente de instancia
ENDCLASS.
CLASS vehiculo IMPLEMENTATION.
METHOD asignat_tipo.
marca = a_marca.
modelo = a_modelo.
ENDCLASS.
METHOD obtener_nro_vehiculos.
nro = nro_vehiculos.
ENDMETHOD.
ENDCLASS.
- Los parámetros de un método pueden ser pasados por valor o por referencia
- Los parámetros IMPORTING o CHAGING pueden ser opcionales o por defecto utilizando las adiciones OPTIONAL o DEFAULT.
- Los métodos soportan sy-subrc, para ello se deben definir EXCEPTIONS.
Eventos
Acontecimientos o sucesos que utilizan los objetos o clases para desencadenar la ejecución de un método en otro objeto o clase.
- A estos métodos se llaman métodos que manejan eventos (event handler methods).
Dependientes de instancia: sólo desencadenados por métodos dependiente de instancia. Se declara EVENTS.
Independientes de instancia o estáticos: todos los métodos pueden desencadenar eventos estáticos. Único tipo de eventos que puede ser desencadenado por métodos estáticos. Se declara CLASS-EVENTS.
Tipos y Constantes
Se pueden definir tipos (TYPES) dentro de una clase. No son específicos de cada instancia por lo que existen una sola vez para todos los objetos de una clase.
Las constantes son un tipo especial de atributos estáticos. Existen para todos los objetos de una clase.
Al definir un atributo(DATA) público en la definición de una variable, si se usa la adición READ ONLY luego del tipo de la variable, permitirá que sea leído fuera de la clase pero solo podrá ser modificado por métodos de la misma clase. READ ONLY solo se puede utilizar en la parte pública de una clase.
 
 
 
Sobre el autor
Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.
Denisse Adriana Hernandez Trujillo
Mexico - Legajo: AH80E
✒️Autor de: 71 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Denisse Hernandez