![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP POO Los Atributos, los Métodos y los Eventos
ABAP POO Los Atributos, los Métodos y los Eventos
![ABAP POO Los Atributos, los Métodos y los Eventos ABAP POO Los Atributos, los Métodos y los Eventos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/469.jpg)
ATRIBUTOS, METODOS Y EVENTOS
ATRIBUTOS. Contiene datos que son almacenados en los objetos de una clase, conocidos como PROPIEDADES
El estado de un objeto viene determinado por el contenido de sus atributos ya que los atributos son las variables referenciadas
Existen dos tipos de atributos:
- DEPENDIENTES DE INSTANCIA: Su contenido es especifico de cada objeto, Declarando con la sentencia DATA
- INDEPENDIENTES DE INSTANCIA O ESTATICOS: El contenido de los atributos define el estado de la clase y es valido en todas las instancias de la clase
Los atributos estaticos se declaran usando CLASS-DATA, Ejm:
CLASS<class>DEFINITION
PUBLIC SECTION.
DATA: . ' Atributo dependiente de instancias
CLASS-DATA: . ' Atributo independiente de instancia
ENDCLASS.
Los atributos que definamos en una clase pueden ser de tres tipos:
- Elementales, es decir, atributos simple tales como variables
- Estructuras
- Tipos Tabla
Si tomamos como ejemplo la clase vehiculo, los atributos de esta clase pueden ser marca, modelo, color, capacidad, etc
METODOS.
Procedimientos internos que definen el comportamiento de un objeto, tambien poseen una interface con parametros que permite recibir valores cuando son invocados y devolver calores despues de la llamada
La definicion y la interface de un metodo es similar a los modulos de funcion. El metodo se define en la parte declarativa de la clase y se implementa en la partre de implementacion con las sentencias, Ejm:
-------------------------------------------- ' Aqui primero definimos al metodo
- CLASS<class>DEFINITION.
- ...
- METHOD method_name ' Los metodos pueden tener firma
- [ ... ]
- ENDCLASS
----------------------------------------------' Implementamos el metodo, donde determina el comportamiento del objeto
- CLASS<class>IMPLEMENTATION.
- METHOD method_name.
- ...
- ENDMETHOD.
- ENDCLASS.
Los metodos se llaman mediante la sentencia CALL METHOD, existen dos tipos de metodos:
- DEPENDIENTES DE INSTANCIA: Se declaran con METHODS. Acceden a todos los atributos de una clase y pueden desencadenar todos los eventos de una clase
- INDEPENDIENTES DE INSTANCIA O ESTATICOS: Se declaran con CLASS-METHODS, Solo pueden ser estaticos
Los métodos de una clase pueden acceder a todos los atributos de su clase y modificar el estado de otros elementos. Pueden tener un número ilimitado de parámetros Importing, Exporting y Changing.
Todos los parámetros dentro de un método pueden ser pasados por valor o por referencia.
Todos los parámetros de entrada de un método, es decir todos aquello que definimos dentro de Importing o Changing, pueden ser definidos como opcionales o por defecto utilizando los modificadores OPTIONAL o DEFAULT.
Estos parámetros no tienen que ser necesariamente transferidos cuando se llama al objeto.
Si utilizamos la adición OPTIONAL, el parámetro se mantendrá inicializado de acuerdo con su tipo. Mientras que con la adición DEFAULT, se nos permitira introducir un valor inicial.
Como en los módulos de funciones, los métodos tambien soportan el retorno del valor del sy-subrc. Pero para ello debemos haber definido las excepciones del método utilizando la palabra reservada EXCEPTIONS
EVENTOS.
Acontecimientos o sucesos que utilizan los objetos o las clases para desencadenar la ejecucion de un metodo en otro objeto o clase
Estos metodos se llaman metodos que manejan eventos (evento handler methods). El metodo puede ser llamado por cualquier numero de usuarios.
Tipos de eventos:
- DEPENDIENTES DE INSTANCIA: Se declara con EVENTS, solo puede ser desencadenads en un metodo dependiente de instancia
- INDEPENDIENTES DE INSTANCIA O ESTATICOS: Se declaran con CLASS-EVENTOS. Estos eventos estaticos son el unico tipo de (eventos que puede ser desencadenado por un metodo estatico)
TIPOS Y CONSTANTES.
Podemos definir tipos de datos dentro de una clase con la sentencia TYPES.
Las constantes son un tipo de atributo (son campos de datos internos de una clase con cualquier tipo de dato) estaticos.
Su valor es fijo, no puede ser cambiado, y utilizamos la sentencia CONSTANTS. Ejm:
- CLASS<class>DEFINITION.
- PUBLIC SECTION.
- CONSTANTS: .
- TYPES: BEGIN OF ... ,
- ... .
- TYPES: END OF ... .
- ENDCLASS
Cuando definimos tipos de datos dentro de la definicion de una clase, podemos utilizar la adición READONLY luego de escribir el tipo de la variable que acabemos de declarar. Esto significara que el atributo público que fue declarado con la sentencia DATA, puede ser leído desde afuera de la clase, pero solo podra ser modificado por métodos de la misma clase. Vale la pena aclarar que solo se podra utilizar la adición READONLY dentro de la parte pública de la declaración de una clase
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para el Máster ABAP POO.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez