✒️ABAP POO Los constructores
ABAP POO Los constructores
El constructor es un método especial que es llamado por el sistema en tiempo de ejecución de forma implícita.
Existen 2 tipos de métodos en los objetos ABAP que son llamados de forma explicita mediante la sentencia CALL METHOD y aquellos que son llamados en forma implícita que son los constructores.
Los constructores se utilizan cuando después de crear la instancia de una clase necesitamos:
- Asignar Recursos.
- Inicializar atributos que no pueden ser cubiertos con la adición value de la sentencia data.
- Modificar atributos estáticos.
- Enviar mensajes que indiquen que un nuevo objeto ha sido creado.
Los tipos de Constructores.
- Constructor de Instancia: Es el que lleva el nombre de CONSTRUCTOR . Este método es llamado por el sistema tan pronto el objeto haya sido generado en memoria.
- Constructor Estático: es el que lleva el nombre de CLASS_CONSTRUCTOR.
Detalles.
Constructor de Instancia.
El constructor es llamado en tiempo de ejecución con la sentencia CREATE OBJECT.
Cuando definimos constructores de instancia:
Las clases no pueden tener mas de un constructor de instancia.
El constructor debe se definido en la sección publica.
El constructor solo puede tener parámetros importing y excepciones.
Cuando se ejecutan las excepciones en el constructor las instancias del objeto no son creadas.
Excepto por un caso extraordinario no se puede llamar a un constructor explícitamente.
En ABAP no existe un destructor en los objetos ABAP es decir no hay un método de instancia que se llame automáticamente antes de que un objeto sea borrado.
“Tal como vimos todos las clases tienen un constructor de instancia llamado constructor, esta es una excepción a la regla que establece que los nombre de los componentes dentro de un árbol de herencia deben ser únicos, sin embargo los constructores de instancias de las distintas clases en un árbol de herencia son totalmente independientes entre si, no es factible redefinir el constructor de instancia de una super-clase en una sub-clase, tampoco es posible llamar a un constructor especifico utilizando la sentencia CALL METHOD CONTRUCTOR, en consecuencia no se pueden producir conflictos en los nombres.
Debido a que una sub-clase contiene todos los atributos visibles de sus super-clases que también pueden ser establecidos por los constructores de instancia, el constructor de instancia de una sub-clase tiene que asegurarse que los constructores de instancia de todas sus super-clases también sean llamados, para ello el constructor de instancia de cada sub-clase, debe contener el método CALL METHOD SUPER CONSTRUCTOR.
En las super-clases que no tengan un constructor de instancia explícitamente definido, el constructor de instancia implicito es llamado, de esta manera nos aserguramos de forma automatica que el constructor de instancia de la super-clase inmediata es llamado.”
Constructor de Clase.
El class constructor es llamado por el sistema cuando la clase es accedida por primera vez por el flujo del programa, pero antes que las sgtes acciones sean ejecutadas por primera vez:
- Crear una instancia de la clase con la sentencia CREATE OBJECT.
- Acceder a un atributo estático de la clase.
- Llamar a un método estático de la clase.
- Registrar un método manejador de eventos para un evento de la clase.
Es importante considerar los siguientes puntos cuando definimos constructores estáticos:
- Cada clase no puede tener mas de un constructor estático (class_constructor).
- El constructor estático debe ser definido en la parte publica de la clase.
- El constructor estático no puede tener parámetros IMPORTING ni excepciones.
- Un constructor estático no puede ser llamado en forma explicita.
 
 
 
Sobre el autor
Publicación académica de Tobias Emanuel Mareco Rojas, en su ámbito de estudios para el Máster ABAP POO.
Tobias Emanuel Mareco Rojas
Profesión: Ingeniería en Informática - Paraguay - Legajo: QL24S
✒️Autor de: 92 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Tobias Mareco