✒️ABAP POO La creación de objetos
ABAP POO La creación de objetos
Unidad-1-Lección-7: Creación de Objetos ¿Qué son 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 instancia (objetos de una clase determinada, que fueron creados en tiempo de ejecución.).
Nota: Un objeto existe mientras se esté usando en el programa. Existe siempre que por lo menos una referencia apunte hacia él o que un método del objeto esté registrado como método manejador de eventos.
AUDIO TIP 1: Una CLASE contiene la descripción genérica de un objeto y describe todas las características que tienen en común todos los objetos de una clase. Mientras ejecutamos un programa una clase se utiliza para crear instancias en la memoria ABAP. Esto es lo que se conoce como Instanciación. Si es la primera vez que la CLASE es accedida, entonces la CLASE también se carga en la memoria ABAP.
2) Referencias a Objetos
Son punteros a los objetos ABAP.
Las referencias a objeto se usan para acceder a un objeto desde un programa ABAP. En ABAP los objetos están siempre contenidos en variables referenciadas.
Las variables referenciadas o bien contienen el valor inicial o bien contiene la referencia a un objeto ya existente. La identidad de un objeto depende de su referencia. Una variable referenciada que apunta a un objeto es la que conoce la identidad del objeto. Los usuarios no pueden acceder la identidad del objeto directamente.
Las variables referenciadas en ABAP son tratadas como cualquier otro objeto de datos elemental. Esto quiere decir que una variable referenciada pude contener una tabla interna o una estructura.
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.
Hay dos tipos principales de referencias, la referencia a clases y la referencia a interfaces, las cuales se verán más adelante en el curso.
Las referencias a clases se definen usando la siguiente adición:
TYPE REF TO <clase>.
Ejemplo:
CLASS VEHICULO DEFINITION.
PUBLIC SECTION.
…
PUBLIC SECTION.
…
ENDCLASS.
CLASS VEHICULO IMPLEMENTATION.
…
ENDCLASS.
DATA: r_vehiculo1 TYPE REF TO vehiculo,
r_vehiculo2 LIKE r_vehiculo1.
START-OF-SELECTION.
…
Esta adición se usa en las sentencias TYPES o DATA. Una variable de este tipo se llama variable referenciada a clase o referencia a clase simplemente.
3) Creación de Objetos
Antes de crear un objeto de una clase es necesario declarar una variable referenciada con la referencia a la clase, tal como hicimos en el punto anterior. Una vez que se ha declarado la referencia a la clase, se puede crear el objeto usando la sentencia siguiente:
CREATE OBJECT <referencia>.
Esta sentencia crea una instancia de la clase a la cual pertenece la variable referenciada.
EJEMPLO:
DATA: r_vehiculo1 TYPE REF TO vehiculo,
r_vehiculo2 LIKE r_vehiculo1.
START-OF-SELECTION.
CREATE OBJECT r_vehiculo1.
CREATE OBJECT r_vehiculo2.
Nota: Podemos utilizar la condición:
IF r_vehiculo1 IS INITIAL
para determinar si la referencia r_vehiculo1 del objeto contiene una referencia nula, es decir si no apunta a ningún objeto.
Si queremos almacenar varios objetos de una misma clase podemos definir una tabla interna que contenga una columna con el objeto referenciado para la clase.
DATA: r_vehiculo TYPE REF TO vehiculo,
itab TYPE TABLE OF REF TO vehiculo.
CREATO OBJECT r_vehiculo.
APPEND r_vehiculo TO itab.
Si no existe una referencia que apunte a un objeto, el objeto no puede ser accedido sintácticamente.
El garbage collector o recolector de basura es una rutina del sistema se inicia automáticamente cada vez que el sistema no tiene tareas más importantes y elimina los objetos no referenciados de la memoria principal, liberando el espacio de la misma que permanecía ocupado. El propósito del 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 lógica:
If r_objeto is INITIAL.
y así determinamos si la referencia es o no nula, es decir, si apunta o no a un objeto.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para el Máster ABAP POO.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez