✒️ABAP El tratamiento de los Objetos
ABAP El tratamiento de los Objetos
Utilizacion de objetos: son instancias de las clases, cada uno tiene identdad propia y sus porpios atributos. Todos los objetos son transitorios residen en el contexto de una sesion interna (area de memoria de un programa ABAP). Una clase puede tener un numero indefinido de instancias.
UN OBJETO EXISTE MIENTRAS SE ESTE USANDO EN EL PROGRAMA, LO QUE QUIERE DECIR QUE EXISTE SIEMPRE QUE AL MENOS UNA REFERENCIA APUNTA HACIA EL, O AL MENOS UN METODO DEL OBJETO ESTÉ REGISTRADO COMO METODO MANEJADOR DE EVENTOS.
Referencias a objeto: son punteros a los objetos ABAP. Se usan para acceder a un objeto desde un programa ABAP. En ABAP los objetos estan siempre contenidos en variables referenciadas, estas contienen el valor inicial o la referencia a un objeto ya existente. Las variables referenciadas en ABAP puede contener una tabla interna o una estructura. ABAP contiene un tipo de datos predefinido para las referencias.
hay 2 tipos principales de referencia:
A clases: TYPE REF TO <class>
DATA: v_alv TYPE REF TO cl_gui_alv_grid, esta adicion se usa en las sentencias TYPES o DATA, una variable referenciada de este tipo se llama variable referenciada a clase o referencia a clase. Una referencia a clase permite al usuario crear una instancia, un objeto de la clase y acceder a un componente visible asi: cref -> comp.
A interfaces.
Creacion de objetos: previo a la creacion de un objeto de una clase se necesita declarar una variable referenciada con la referencia a la clase. CREATE OBJETCT sentencia que crea el objeto, crea una instancia de la clase y la variable referenciada contiene referencia al objeto.
Si no existe una ref que apunte a un objeto, el objeto no puede ser accedido sintacticamente.
GARBAGE COLLECTOR rutina del sistema que inicia automaticamente cada vez que el sistema no tiene tareas mas importantes que realizar y elimina los objetos no referenciados de la memoria principal, liberando el espacio de la misma que estaba ocupado.
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, sintaxis:
Para acceder al atributo attr: VARIABLEREFERENCIADA -> attr.
Para llamar al metodo meth: CALL METHOD VARIABLEREFERENCIADA -> meth.
Para los componentes estaticos o independientes de instancia, dependientes de clase, se puede usar tanto el nombre de la clase como la variable referenciada, ademas es posible el aceeso a los componentes estaticos de una clase antes de que un objeto de la clase haya sido creado. Sintaxis:
Para acceder al atributo estatico attr: class -> attr.
Para llamar al metodo estatico meth: CALL METHOD class -> meth.
Dentro de una clase se puede acceder ademas a los componentes individuales mediante la referencia a si mismo ME:
Para acceder al atributo attr en la propia clase: me -> attr.
Para acceder al metodo meth en la propia clase: CALL METHOD me -> meth.
LOS CONTRUCTORES SON UN TIPO ESPECIAL DE METODOS, SON LLAMADOS DE MANERA AUTOMATICA POR EL SISTEMA PARA FIJAR EL ESTADO INICIAL DE UN NUEVO OBJETO O CLASE. HAY DOS TIPOS DEPENDIENTES DE INSTANCIA E INDEPENDIENTES DE INSTANCIA. SON METODOS CON UN NOMBRE PREDEFINIDO. DEBEN SER DECLARADOS EXPLICITAMENTE EN LA CLASE. NO EXISTE UN DESTRUCTOR EN ABAP.
ASIGNACION DE REFERENCIAS: para asignar referencias a diferentes variables referenciadas se usa la sentencia MOVE, se pueden tener las referencias en varias variables referecniadas apuntando al mismo objeto. Si se escribe la sentencia CREF1 = CREF2 las 2 referencias deben tener el mismo tipo, o sea tienen que referirse a la misma clase, o la clase de CREF1 tiene que ser la clase predefinida como valida, o sea OBJECT.
La clase OBJECT no tiene componetes y tiene la misma funcion para las variables referenciadas que el tipo de datos ANY para las variables normales.
 
 
 
Sobre el autor
Publicación académica de Jose Ignacio Rodini, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Ignacio Rodini
Profesión: Licenciado en Informatica - Argentina - Legajo: HM58N
✒️Autor de: 115 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rodini