![](/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/160.jpg)
CONSTRUCTORES:
Los constructores son un tipo especial de métodos que no pueden ser llamados con la sentencia CALL METHOD, o la forma abreviada, estos métodos son llamados automáticamente, de forma implícita, por el sistema para fijar el estado inicial de un nuevo objeto o clase.
TIPOS DE CONSTRUCTORES:
Hay dos tipos de constructores, los dependientes de instancia y los estáticos o
independientes de instancia. Los constructores son métodos con un nombre predefinido. Para usarlos deben ser declarados explícitamente en la clase. El constructor dependiente de instancia de una clase es un método que se llama CONSTRUCTOR. Se declara en la sección pública de la siguiente manera:
METHODS CONSTRUCTOR
IMPORTING.. [VALUE(]<ii>[)] TYPE type [OPTIONAL]..
EXCEPTIONS.. <ei>.
Se implementa en la parte de implementación de la misma manera que cualquier otro método. El sistema llama al constructor dependiente de instancia una vez para cada instancia de la clase, justo después de que el objeto haya sido creado mediante la sentencia CREATE OBJECT.
Se le pueden pasar parámetros de entrada y controlar sus errores usando las adiciones EXPORTING y EXCEPTIONS en la sentencia CREATE OBJECT.
El constructor estático de una clase es el método estático predefinido CLASS_CONSTRUCTOR. Se declara en la sección pública de la siguiente manera:
CLASS-METHODS CLASS_CONSTRUCTOR.
Se implementa como cualquier otro método. El constructor estático no tiene parámetros. El sistema llama al constructor estático una vez para cada clase, justo antes de la clase se utiliza por primera vez. Debido a esto el constructor estático no puede acceder a los componentes de la propia clase.
Cuando define los constructores, siempre debe tener en cuenta los puntos siguientes:
Ninguna clase puede tener más de un constructor de instancia.
Un constructor debe definirse en el área pública.
La firma del constructor solo puede incluir parámetros de importación y excepciones.
Cuando se emiten excepciones en el constructor, no se crean instancias, de manera que no se ocupa espacio de memoria principal. Con la excepción de un caso, no se puede llamar el constructor de forma explícita.
Nota: No hay destructores en los objetos ABAP; es decir, no existe ningún método de instancia que se llame de manera automática desde la memoria inmediatamente antes de que se borre el objeto.
Cuando se necesita crear Constructores:
Después de la instanciación de una clase, se necesita un constructor cuando se presente alguna de las siguientes condiciones:
- Debe asignar recursos.
- Debe inicializar atributos que no pueden cubrirse con el suplemento VALUE en la sentencia DATA.
- Modifica atributos estáticos.
- Debe informar a otros objetos sobre la creación de objetos.
EJEMPLO DE COSNTRUCTOR DE INSTANCIA:
CLASS producto DEFINITION CREATE PUBLIC.
PUBLIC SECTION.
METHODS constructor.
CLASS-METHODS: class_constructor.
ENDCLASS.
CLASS producto IMPLEMENTATION.
METHOD constructor.
WRITE: / 'Constructor de Instancia'.
ENDMETHOD.
METHOD class_constructor.
WRITE: / 'Constructor Estático'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: gr_producto TYPE REF TO producto.
CREATE OBJECT gr_producto.
CONSTRUCTOR DE CLASE:
El constructor de clase se crea por medio de la transacción SE24.
CLASS pr
 
 
 
Sobre el autor
Publicación académica de Enrique Horacio Lugo Lander, en su ámbito de estudios para el Máster ABAP POO.
Enrique Horacio Lugo Lander
Profesión: Tsu en Informática - Argentina - Legajo: GB93C
✒️Autor de: 30 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Enrique Lugo