✒️ABAP POO Los constructores
ABAP POO Los constructores
U2-L1
Constructores
Método especial llamado por el sistema en tiempo de ejecución de forma implícita.
Existen dos tipos de métodos en los Objetos ABAP; los llamados en forma explícita(CALL METHOD o forma abreviada) y los llamados en forma explícita (Constructores).
¿Cuando utilizar Constructores?
Cuando después de crear una instancia se necesita:
- Asignar recursos
- Inicializar atributos que no son cubiertos por "VALUE" en "DATA"
- Modificar atributos estáticos
- Enviar mensajes que indiquen que un nuevo objeto se creó.
Tipos de Constructores
Constructor de instancia: CONSTRUCTOR método llamado por el sistema cuando se crea el objeto.
Constructor estático; CLASS_CONSTRUCTOR.
Constructor de instancia
Es llamado con sentencia CREATE OBJECT.
CLASS classname DEFINITION.
METHODS constructor
[ IMPORTING
im_par TYPE type_name
EXPORTING
exception
RISING
exception_class ].
...
ENDCLASS
IMPORTANTE
- Cada clase tiene un constructor de instancia
- Debe ser definido en sección pública
- Solo parámetors IMPORTING y excepciones.
- Cuando se ejecutan las excepciones en el constructor, no se crean las instancias del objeto.
- Excepto a caso extraordinario, no se puede llamar un constructor explícitamente.
No existe destructor en Objetos ABAP, o bien no hay método de instancia que se llame antes que un objeto sea borrado.
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
METHODS constructor IMPORTING im_marca TYPE string
im_modelo TYPE string.
PRIATE SECTION.
DATA: marca TYPE string,
modelo TYPE string.
ENDCLASS.
CLASS vehiculo IMPLEMENTATION.
METHOD constructor.
marca = im_marca.
modelo = im_modelo.
ENDMETHOD.
ENDCLASS.
DATA: r_vehiculo TYPE REF TO vehiculo.
START-OF-SELECTION.
CREATE OBJET r_vehiculo
EXPORTING
im_marca = 'Ferrari'
im_modelo = 'F40'.
No se factible re-definir el constructor de instancia de una super clase en una subclase.
No es posible llamar un constructor con CALL METHOD.
El consturctor de instancia de una sub-clase contiene los atributos visibles de su super clase (pueden ser establecidos por constructores de instancia) por lo que debe asegurarse que los consturctores de sus super clases, sean llamados.
Constructor de Clase (estáticos)
CLASS_CONSTRUCTOR; llamado por el sistema cuando la clase se accede por primera vez, antes que las siguientes acciones se ejecuten;
- Crear una instancia de la clase (CREATE OBJECT)
- Acceder a un atributo estático
- Llamar a un método estático de la clase
- Registrar método manejador de eventos para un evento de la clase
Considerar:
- Una clase no puede tener mas de un constructor estático
- El constructor estático debe definirse en sección pública
- No puede tener parámetors IMPORTING ni excepciones (al contrario del de instancia)
- No puede ser llamado en forma explícita
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS class_constructor.
PRIVATE SECTION.
CLASS-DATA: n_o_vehiculos TYPE i.
ENDCLASS.
CLASS vehiculo IMPLEMENTATION.
METHOD class_constructor.
CLEAR: n_o_vehiculos.
ENDMETHOD.
ENDCLASS.
Crear el constructor de una clase global; en la definición de la clase (se24), en botón(constructor clase) de extremo superior derecha de la pantalla, se crea método estático de visibilidad pública class-constructor. Al darle doble click al método, se ingresa el código deseado.
 
 
 
Sobre el autor
Publicación académica de Denisse Adriana Hernandez Trujillo, en su ámbito de estudios para el Máster ABAP POO.
Denisse Adriana Hernandez Trujillo
Mexico - Legajo: AH80E
✒️Autor de: 71 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Denisse Hernandez