
CREACION DE OBJETOS – LECCION 1-6
¿QUE SON LOS 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 infinito de instancias.
NOTA, un objeto existe mientras se esté usando en el programa, lo que quiere decir es que existe siempre que al menos una referencia apunte hacia él, o al menos un método del objeto este registrado como método manejador de eventos.
REFERENCIAS A OBJETOS, son punteros a los objetos ABAP
Las referencias a objetos 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 contienen 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 a la identidad del objeto directamente
Hay dos tipos principales de referencias, la referencia a clase y la referencia a interfaces
Las referencias a clases se definen usando la siguiente adición:
TYPE REF TO <class>.
Esta adición se usa en las sentencias TYPES o DATA. Una variable referenciada de este tipo se llama variable referenciada a clase o referenciada a clase simplemente
CREACION 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 las referencias a la clase, se puede crear el objeto usando la sentencia siguiente
CREATE OBJET <referencia>
Esta sentencia crea una instancia de la clase a la cual pertenece la variable referenciada
NOTA, se puede 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