
1) UTILIZACIÓN DE OBJETOS.
Los objetos son instancias de las Clases y tiene sus propios atributos. Un objetos existe mientras se esté usando en el programas.
2) REFERENCIAS A OBJETOS
Son punteros a los objetos ABAP, las referencias a objetos se usan para acceder a un objeto desde un programa ABAP. 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. Las variables referenciadas en ABAP son tratardas como cualquier otro objeto de datos elemental.
Hay dos tipos de referencias:
- Referencias de clases. Se definen usando TYPE REF TO <class> como ejemplo:
DATA: v_alv TYPE REF TO cl_gui_alv_grid
Esta adición se usa en las sentencias TYPES o DATA
Una referencia a clase permite al usuario crear una instancia de la clase y acceder a un componente de la misma,
cref -> comp
3) CREACIóN DE OBJETOS:
Antes de crear un objeto se debe declarar una variable referenciada con la referencia a la clase. Una vez declarada la referencia se puede crear el objeto usando la sentencia CREATE OBJECT.
Ejemplo:
DATA cnt TYPE REF TO counter.
START-OF-SELECTION.
CRATE OBJECT cnt.
El GARBAGE COLLECTOR (Recolector de Basura) es una rutina del sistema que se dispara automáticamente que se dedica a a eliminar los objetos no referenciados de la memoria, el próposito es identificar y descartar los objetos no necesarios para un programa. Dada la referencia r_objeto, se puede determinar si el objeto contiene una referencia nula con la lógica:
IF r_objeto is Initial.
4) COMO ACCEDER A LOS COMPONENTES DE UN OBJETO.
Los programas solo pueden acceder a los componentes de las instancias usando las referencias de las variables referenciadas. La sintaxis es,siendo ref la variable referenciada:
- Para acceder al atributo attr : ref -> attr
- Para llamar al método meth : ref -> meth
para los componentes estáticos o independientes de instacias se puede usar tanto el nombre de la clase como la variable referenciada, considerando class la clase
- Para acceder al atributo estatico attr : class -> attr
- Para llamar al método estático meth : CALL METHOD class -> meth
O se puede referencia a si mismo con ME:
- Para acceder al atributo attr en la propia clase : me -> attr
- Para llamar al método meth en la propia clses : CALL METHOD me -> meth
Los CONSTRUCTORES no pueden ser llamados por la sentencia CALL METHOD, estos métodos son llamados automáticamente por el sistema para fijar el estado inicialde un nuevo objeto o clase, hay 2 tipos de constructores:
- Dependientes de instancia
- Estáticos o independientes de instancia
Estos son métodos con nombre predefinido y para usarlos se debe declarar en la clase.
5) ASIGNACIÓN 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.
Si se escribe cref1 = cref2 las dos referencias deben ser del mismo tipo, o bien cref1 tiene que ser del tipo OBJECT ( Clase predefinida que funciona igual del tipo de datos ANY). Las variables referenciadas tipo OBJECT pueden funcionar como contenedoras para pasar referencias, nunca pueden ser usadas para acceder objetos.