✒️ABAP POO / Los constructores Por Jeferson Pena Curvelo
ABAP Los constructores

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. Aquellos que son llamados en forma explícita mediante la sentencia CALL METHOD (o la forma abreviada) y aquellos que son llamados en forma implícita que son los constructores.
Cuando Utilizar Constructores: Sera necesario si después de crear una instancia de una clase necesitamos
- Asignar recursos.
- Iniciar 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.
Tipos de Constructores: Existen 2 tipos de constructores que pueden ser declarados:
- El constructor de instancia que lleva el nombre de CONSTRUCTOR. Este método es llamado por el sistema tan pronto como el objeto ha sido generado en memoria.
- El constructor estático que lleva el nombre de CLASS_CONSTRUCTOR.
Constructor de Instancia: es llamado en tiempo de ejecución con la sentencia CREATE OBJECT.
La forma de definirlo es la siguiente:
CLASS classname DEFINITION.
METHODS constructor
[IMPORTING
im_par TYPE type_name
EXCEPTIONS
exception
RAISING
exception_class].
...
ENDCLASS.
Es importante considerar los siguientes puntos cuando definimos constructores de instancia:
- Cada clase no puede tener más de un constructor de instancia.
- El constructor debe ser definido en la sección publica de la clase.
- 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.
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.
Todas las clases tienen un constructor de instancia llamado CONSTRUCTOR, esta es una excepción a la regla que establece que los nombres de los componentes dentro de un árbol de herencia deben ser únicos, sin embargo, los constructores de instancias de distintas clases en un árbol de herencias son totalmente independientes entre si. No es factible redefinir el constructor de instancia de una super clase en una subclase. Tampoco es posible llamar a un constructor especifico con la sentencia CALL METHOD CONSTRUCTOR, en consecuencia, no se pueden producir conflictos en los nombres. Debido a que una subclase contiene todos los atributos visibles de su superclase que también pueden ser establecidos por los constructores de instancia, el constructor de instancia de una subclase tiene que asegurarse que los constructores de instancia de todas sus superclases también sean llamados. Para ello el constructor de instancia de cada subclase debe contener el método CALL METHOD SUPER-CONSTRUCTOR. En las superclases que no tengan un constructor de instancia explícitamente definido el constructor de instancia implícito es llamado. De esta manera nos aseguramos automáticamente que el constructor de instancia de la clase inmediata es llamado.
El constructor de clase CLASS_CONSTRUCTOR: es llamado por el sistema cuando la clase es accedida por primera vez por el flujo del programa, pero antes que las siguientes acciones sean ejecutadas por primera vez:
- Crear una instancia de la clase con 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 más de un constructor estático.
- El constructor estático debe ser definido en la sección 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 explícita.
Podemos crear el constructor de clase a través de la transacción estándar SE24 dentro de la definición de la clase global para ello:
Ejecutamos la transacción SE24
Escribir el nombre de clase en el tipo Objeto
Presionar el botón crear
En la barra de herramientas de la pantalla, a continuación, se visualiza el botón Constructor Clase en el extremo superior derecho de la pantalla. Al presionar automáticamente se estará generando nuestra clase el método estático de visibilidad publica CLASS CONSTRUCTOR. al presionar doble clic en el nombre del método se podrá agregar el código ABAP que deseamos, dentro del mismo.
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP Orientado a Objetos.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























