![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP POO Los constructores
ABAP POO Los constructores
![ABAP POO Los constructores ABAP POO Los constructores](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/241.jpg)
Constructores
Es un metodo especial público que es llamado por el sistema de manera implicita.
Solo puede haber un constructor por clase y solo puede tener parametros IMPORTING y EXCEPCIONES.
Si se ejecutan las excepciones del codigo, las instancias no son creadas.
Excepto por casos extraordinarios, no se puede llamar a un constructor de manera explicita.
En Abap, no existen metodos destructor de objetos que se llame de manera automatica antes de que un objeto sea borrado.
Los constructores son usados ya que permiten:
- Asignar recursos
- Inicializar atributos que no pueden cubiertos con la adicion VALUE en la sentencia data
- Modificar atributos estaticos
- Enviar mensajes que un nuevo objeto fue creado
Hay 2 tipos
El constructor estatico: CLASS_CONSTRUCTOR
Es el primer constructor llamado por el sistema de manera automatica (no se le puede llamar de manera explicita) cuando se accede a la clase por primera vez. Se ejecuta antes de que las siguientes acciones sean ejecutadas por primera vez:
-Crear una instancia de la clase usando CREATE OBJECT
-Acceder a un atributo estatico de la clase
-Llamar a un metodo estatico de la clase.
-Registrar un metodo manejador de eventos para un evento de la clase.
Solo hay 1 constructor estatico por clase y debe ser definido en la seccion publica de la clase.
No lleva parametros importing ni excepciones.
Se lo puede crear con la transaccion SE24, al elegir el boton Constructor de clase y lo hace automaticamente.
Si hacemos doble click en el nombre del metodo recien creado, podremos agregar el codigo que querramos.
El constructor de instancia, que se ejecuta cuando se usa el comando CREATE OBJECT.
Toda clase tiene uno, que se llama constructor.
Los constructores de un arbol de herencia son totalmente independientes entre si, aunque se llamen igual.
No se puede redefinir el constructor de instancia de una superclase en una subclase.
Tampoco se puede llamar a un constructor especifico, de este modo se evitan conflictos con los nombres.
Dado que una clase hija contiene todos los atributos visibles de sus clases superiores (que tambien pueden ser establecidos por sus constructores de instancia correspondientes), el constructor de instancia de la clase hija tiene que asegurarse que los constructores de instancia de sus clases superiores sean llamados: Para eso, debe contenter el metodo: call method superconstructor.
En las clases superiores que no tengan un contructor de instancia explicitamente definido, el constructor de instancia implicito es llamado y de esta manera, nos aseguramos que el el contructor de la clase superior sea llamado automaticamente.
Como se define un constructor de instancia:
CLASS <nombre> DEFINITION.
METHODS CONSTRUCTOR
[IMPORTING im_par type type_name
EXCEPTIONS exception
RAISING exception_class ]
ENDCLASS.
 
 
 
Sobre el autor
Publicación académica de Juan Pablo Carro, en su ámbito de estudios para el Máster ABAP POO.
Juan Pablo Carro
Profesión: Analista de Sistemas - Argentina - Legajo: DB81J
✒️Autor de: 8 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime