✒️ABAP El tratamiento de los Objetos
ABAP El tratamiento de los Objetos
TRATAMIENTO DE OBJETOS
UTILIZACION DE OBJETOS
Los objetos son instancias de las clases. Cada objeto tiene una identidad propia y tiene sus propios atributos. Todos los objetos transitorios residen en el contexto de una sesión interna ( área de memoria de un programa ABAP ). Una clase puede tener un número indefinido de instancias
REFERENCIA A OBJETOS. Son punteros a los objetos ABAP
Se usan para acceder a un objeto desde un programa ABAP. En ABAP los objetos están siempre contenidos en variables referenciadas
ABAP contiene un tipo de datos predefinido para las referencias, comparable a los tipos de datos para las estructuras o para las tablas internas. El tipo de datos completo no está definido hasta la declaración en el programa ABAP. El tipo de datos de la variable referenciada determina como el programa actúa con su valor, o sea, con la referencia al objeto
Existen dos tipos principales de referencias, la referencia a clases y la referencia a interfaces
Sintaxis de las referencias a clases
TYPE REF TO<CLASS> 'Esta adición se usa en las sentencias TYPES o DATA.
Una referencia a clase permite al usuario crear una instancia, es decir un objeto, de la clase y acceder a un componente visible de la siguiente manera:
CREF->COMP
CREACION DE OBJETOS
Primero es necesario declarar una variable referenciada con la referencia a la clase. Una vez que se ha declarado la referencia a la clase, se puede crear el objeto usando la sentencia CREATE OBJECT. Esta sentencia crea una instancia de la clase y la variable referenciada contiene la referencia al objeto
Si no existe una referencia que apunte a un objeto, este no puede ser accedido sintácticamente. El Garbage Collector o recolector de basura, es una rutina del sistema que se inicia de forma automática cada vez que el sistema no tiene tareas más importantes que realizar y elimina los objetos no referenciados de la memoria principal liberando espacio que permanecía ocupado.
El propósito de este Garbage Collector (recolector de basura) es identificar y descartar los objetos que ya no son necesarios para un programa, de manera que sus recursos puedan ser recuperados y reutilizados.
Dada la referencia r_objeto, podemos utilizar la siguiente logica: IF r_objeto IS INITIAL.
Mediante esta lógica, determinamos si r_objeto, contiene la referencia nula, es decir, si no apunta a algún objeto.
Los programas sólo pueden acceder a los componentes de las instancias usando las referencias de las variables referenciadas. Sintaxis:
- Para acceder al atributo attr: ref>attr
- Para llamar al método meth: CALL METHOD ref>meth.
También es posible acceder a los componentes estáticos de una clase antes objeto de la clase haya sido creado. Sintaxis:
- Para acceder al atributo estático attr: class>attr.
- Para llamar al método estático meth: CALL METHOD class>meth
Dentro de una clase se puede acceder también a los componentes individuales mediante la referencia a sí mismo ME:
- Para acceder al atributo attr en la propia clase: me>attr
-
Para llamar al método meth en la propia clase: CALL METHOD me>meth
Los constructores son un tipo especial de métodos que no pueden ser llamados a través de la sentencia CALL METHOD. Estos métodos son llamados automáticamente por el sistema para fijar el estado inicial de un nuevo objeto o clase.
Hay dos tipos de constructores, los dependientes de instancia y los estáticos o independientes de instancia. Los constructores son métodos con un nombre predefinido, para usarlos deben ser declarados explícitamente en la clase.
Un constuctor será necesario si después de crear una instancia de una clase necesitamos asignar recursos, inicializar atributos que no pueden ser cubiertos con la adición VALUE de la sentencia DATA, modificar atributos estáticos, o enviar mensajes que indiquen que se ha creado un nuevo objeto. No existe un destructor en los objetos ABAP, es decir, no hay un método de instancia que se llame automáticamente antes que un objeto sea borrado
ASIGNACION DE REFERENCIA
Se pueden asignar referencias a distintas variables referenciadas usando la sentencia MOVE. De esta manera se puede tener las referencias en varias variables referenciadas apuntando al mismo objeto
Cuando se usa la sentencia MOVE o el operador de asignación = para asignar variables referenciadas, el sistema debe ser capaz de reconocer en el chequeo de la sintaxis si la asignación va a ser posible.
Si escribimos la sentencia cref1 = cref2, las dos referencias tienen que tener el mismo tipo, esto es, tienen que referirse a la misma clase, o bien la clase de cref1 tiene que ser la clase predefinida como vacía, o sea OBJECT.
MI PRIMER PROGRAMA DE OBJETOS
El objetivo del programa será simular un contador. Definimos la clase CONTADOR con los metodos publicos y atributo privado COUNT,
- Creamos la implementación de la clase
- Declaramos las variables NUMBER de tipo i, inicializada con el valor cinco y CNT que será una referencia de la clase contador
- Creamos una instancia de la clase y ejecutamos el metodo SET.
- Ejecutamos dentro de una iteracion el metodo INCREMENTAR_CONTADOR sumando 1 al contenido de la varibal number.
- Ejecutamos el programa
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
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