✒️ABAP El tratamiento de los Objetos
ABAP El tratamiento de los Objetos
3° Tratamiento de Objetos
1- Utilización de 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.
- Una Clase puede tener un número indefinido de Instancias.
NOTA: Un Objeto existe mientras se esté usando en el programa ABAP, o sea mientras una referencia apunte a él, o un Método del Objeto esté registrado como Método Manejador de Eventos.
2- 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 un Valor Inicial o la referencia a un Objeto 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.
- Las Variables Referenciadas en ABAP son tratadas como cualquier otro Objeto de Datos elemental, o sea que puede 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 Tablas Internas o las Estructuras.
- El Tipo de Datos completo no está definido hasta que se lo declara en el programa.
- El Tipo de Datos de la Variable Referenciada determina como actúa el programa con su valor.
- Hay 2 Tipos de Referencias
- Referencias a Clases
- Referencias a Interfaces
- Referencias a Clases
- Se definen usando la adición REF TO. Esta adición 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, es decir un Objeto de la Clase y acceder a un Componente visible usando cref->comp
3- Creación de Objetos
- Antes de crear un Objeto de una Clase, se debe declarar una Variable Referenciada con Referencia a Clase.
- Luego, para crearlo se utiliza la sentencia CREATE OBJECT, la cual crea una Instancia de la Clase y la Variable Referenciada contiene la referencia al Objeto.
CLASS counter IMPLEMENTATION.
...
ENDCLASS.
DATA cnt TYPE REF TO counter.
START-OF-SELECTION.
CREATE OBJECT cnt.
4- Cómo Acceder a los Componentes de un Objeto
Los programas solo acceden a los Componentes de las Instancias usando las referencias de las Variables Referenciadas.
Para acceder al Atributo attr se debe usar ref->attr.
Para llamar al Método meth se debe usar CALL METHOD ref->meth.
Para los Componentes Estáticos, sólo Dependientes de Clase, se puede usar el Nombre de la Clase como la Variable Referenciada. También es posible acceder a los Componentes Estáticos de una Clase antes que un Objeto de la Clase haya sido creado.
Para acceder al Atributo Estático attr se debe usar class->attr.
Para llamar al Método Estático meth se debe usar CALL METHOD class->meth.
Dentro de una Clase, se puede acceder a los Componentes individuales mediante la referencia a sí mismo ME.
Para acceder al Atributo attr en la propia Clase se debe usar me->attr.
Para llamar al Método meth en la propia Clase se debe usar CALL METHOD me->meth.
5- Asignación de Referencias
- Usando la sentencia MOVE o el operador = , se pueden asignar referencias a distintas Variables Referenciadas.
- Las referencias en varias Variables Referenciadas estarán apuntando al mismo Objeto.
- Los Tipos de las variables deben ser compatibles.
- En la sentencia cref1 = cref2, las dos referencias deben ser del mismo tipo, o sea tienen que referirse a la misma Clase o la Clase de cref1 tiene que ser la Clase predefinida como vacía o sea como OBJECT:
- La Clase OBJECT no tiene Componentes y tiene la misma función para las Variables Referenciadas como el Tipo de Datos ANY para las variables normales.
- Las Variables Referenciadas con el Tipo OBJECT pueden funcionar como contenedoras para pasar referencias, pero no pueden ser usadas para acceder a Objetos.
6- Mi Primer Programa de Objetos
- Objetivo: Simular un contador arranca de 5 y después de iterar 3 veces, se lo muestra por pantalla.
- Clase: CONTADOR
- Métodos Públicos: SET, INCREMENTAR_CONTADOR y GET
- Atributo Privado: COUNT
- Se declara la variable NUMBER de Tipo i con un valor inicial de 5
- Se declara una referencia de la Clase CONTADOR con el nombre CNT
- Dentro del START-OF-SELECTION
- Creamos una Instancia de la Clase CONTADOR
- Ejecutamos el Método SET (el cual importa NUMBER a COUNT)
- Dentro de una iteración, ejecutamos el Método INCREMENTAR_CONTADOR (el cual suma 1 a COUNT)
- Ejecutamos el Método GET (el cual exporta COUNT a NUMBER)
- Se imprime la variable NUMBER
 
 
 
Sobre el autor
Publicación académica de Victor Norberto Levi, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Norberto Levi
Profesión: Analista Programador - Argentina - Legajo: VT17H
✒️Autor de: 111 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Victor Levi