✒️ABAP / El tratamiento de los Objetos Por Javier Angel Barcelo
ABAP El tratamiento de los Objetos

La utilización de objetos
los objetos son instancias de las clases, con identidad y atributo propios. 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.
Un objeto existe siempre que una referencia apunte hacia él o un método del objeto esté registrado como método manejador de eventos.
Las referencias 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.
Las variables referenciadas contienen el valor inicial o la referencia a un objeto ya existente. La identidad de un objeto depende de su referencia. Una variable referenciada es la que conoce la identidad del objeto. Los usuarios no pueden acceder a la identidad del objeto directamente.
Las variables referenciadas en ABAP son tratada con cualquier otro objeto de datos elemental. Esto quiere decir que una variable referenciada puede contener una tabla interna o una estructura.
ABAP contiene un tipo de dato predefinido para las referencias, comparables a los tipos de datos para las estructuras o para las tablas internas. El tipo de dato completo no esta definido hasta la declaración en el programa ABAP. El tipo de dato 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 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.
La creación de objetos:
Antes de crear un objeto de una clase 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 crear una instancia de la clase y de la variable referenciada contiene la referencia al objeto.
Como acceder a los componentes de un objeto?
Los programas sólo pueden acceder a los componentes de las instancias usando la referencias de las variables referenciadas. La sintaxis es la siguiente, siendo ref la variable referenciada:
- Para acceder al atributo attr: ref>attr.
- Para llamar al método meth: CALL METHOD ref->math.
Para los componentes estáticos o independientes de instancia, sólo dependiente de clase, se puede usar tanto el nombre de la clase como la variable referenciada. También es posible acceder a los componentes estáticos de una clase antes de que un objeto de la clase haya sido creado.
La sintaxis, siendo clase la clase es la siguiente:
- 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.
La asignación de referencias:
Se pueden asignar referencias a distintas variables referenciadas usando la sentencia MOVE. De esta manera se puede tener las referencias en varias variables apuntando al mismo objeto.
Cuando se asigna una referencia a una variable referenciada distinta, sus tipos deben ser compatibles. 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. Esto mismo se aplica cuando se pasan variables referenciadas como parámetros a procedimientos.
Si escribimos la sentencia cref1 = cref2, las dos referencias tienen que tener el mismo tipo, esto es, tiene que referirse a la misma clase, o bien la clase de cref1 tiene que ser la clase predefinida como vacía, o sea OBJECT.
La clase OBJECT no tiene componentes y tiene la misma función para las variables referenciadas que el tipo de datos ANY para la variables normales. Las variables referenciadas con el tipo OBJECT puede funcionar como contenedoras para pasar referencias. De cualquier manera, nunca pueden ser usadas para acceder a objetos.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 107 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: PartTime
























