✒️ABAP El tratamiento de los Objetos
ABAP El tratamiento de los Objetos
Unidad 5: La programación Orientada a Objetos
Lección 3: El tratamiento de los objetos
El uso de objetos:
Los objetos son instancias de las clases. Cada uno tiene una identidad propia y sus propios atributos. Todos los objetos transitorios residen en el contexto de una sesión interna (área de memoria de un programa).
Una clase puede tener un nro. indefinido de instancias.
Un objeto existe mientras se esté usando el programa, es decir, existe siempre que al menos una referencia apunte a él.
Las referencias a objetos:
Son punteros a los objetos ABAP.
Se usan para acceder a un objeto desde un programa. En ABAP los objetos siempre están contenidos en variables referenciadas.
Estas variables contienen el 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 de ref. son tratadas como cualquier otro objeto de datos elemental, es decir, que una variable ref. puede contener una TI o una estructura.
ABAP contiene un tipo de datos predefinido para las referencias, comparable a los tipos de datos para las estructura o TI. El tipo de datos completo no está definido hasta la declaración en el programa.
El tipo de datos de la variable ref. determina como el programa actúa con su valor, es decir, con la referencia al objeto.
Hay dos tipos principales de referencias: la referencia a clases y la referencia a interfaces.
Se usan con la adición:
Ej:
Esta adición se usa en las sentencias TYPES y DATA. Una variable de ref. de este tipo se llama variable ref. a clase o ref. a clase
Una referencia de clase permite al usuario crear una instancia, es decir, un objeto, de la clase y acceder a un componente visible:
La creación de objetos:
Antes de declarar un objeto, se debe declarar una variable ref. a una clase. Luego, se puede crear el objeto con la sent. CREATE OBJECT. Esta sent. crea una instancia de la clase y la variable ref. contiene la referencia del objeto.
EJ:
Cómo acceder a los componentes de un objeto:
Los programas solo pueden acceder a los componentes de las instancias usando las referencias de las variables ref. La sintaxis es la sig. siendo ref la variable de ref:
- Para acceder al atributo attr: ref -> attr.
- Para llamar al método meth: CAL METHOD ref ->meth.
Para los componentes estáticos o independientes de instancia, solo dependientes de clase, se puede usar tanto el nombre de la clase como la variable ref. También es posible acceder a los componentes estáticos de una clase antes de un objeto de la clase haya sido creado.
La sintaxis, siendo class la clase de la sig:
- Para acceder al atributo estático attr: class-> attr.
- Para llamar al método estático meth: CAL METOD class-> meth.
Dentro de una clase se puede acceder también a los componentes individuales mediante la ref. a si mismos 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.
Asignación de referencias:
Se pueden asignar referencias a distintas variables ref. usando la sent. MOVE. De esta forma se puede tener las referencias en varias variables referenciadas apuntando al mismo objeto.
Cuando se asigna una referencia a una variable referenciada distinta, sus propios deben ser compatibles. Cuando se usa la sentencia MOVE o el operador de asignación = para asignar variables referenciadas, el sist debe ser capaz de reconocer en el chequeo de la sintaxis si la asignación va a ser posible.
Si escribimos la sent. cref1 = cref2, las dos referencias tienen que tener el mismo tipo, es decir, tienen que referirse a la misma clase.
La clase OBJECT no tiene componentes y tiene la misma función para las variables referenciadas que 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 usarse para acceder a objetos.
Mi primer programa de objetos:
El objetivo del programa será simular un contador, para ello, definimos la clase CONTADOR con los métodos públicos y el atributo privado COUNT:
Creamos la implementación de la clase:
Declaramos las variables NUMBER (tipo i), inicializada con el valor 5 y CNT que será una referencia de la clase contador.
Luego creamos una instancia de la clase contador y ejecutamos el método set.
Finalmente ejecutamos dentro de un iteración el método INCREMENTAR_CONTADOR, que es el que sumará el contenido de la variable NUMBER, objetemos un nuevo valor y lo imprimimos por pantalla:
Si ejecutamos el programa, veremos la sig. salida:
 
 
 
Sobre el autor
Publicación académica de Candela Estefanía Calzada, en su ámbito de estudios para la Carrera Consultor ABAP.
Candela Estefanía Calzada
Profesión: Técnica Electrónica - Argentina - Legajo: JW91W
✒️Autor de: 160 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me encuentro estudiando la ingeniería en sistemas de información. poseo amplia experiencia en edición de videos. tengo bases entorno a la programación que quiero continuar consolidando.
Certificación Académica de Candela Calzada