Constructor de instancia y constructor estatico

Los constructores son un tipo especial de métodos que no pueden ser llamados con la sentencia CALL METHOD. Estos métodos son llamados automáticamente por el sistema para fijar el estado inicial de un nuevo objeto o clase. 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 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 sistema llama al constructor estático una vez para cada clase, justo antes de que la clase se utilice por primera vez. Debido a esto, el constructor estático no puede acceder a los componentes de la propia clase.
El sistema llama al constructor estático de manera automática antes de que se accede a la clase por primera vez y antes de la primera ejecución de las siguientes acciones:

  • Cuando se crea una instancia de la clase (CREATE OBJECT).
  • Cuando se accede a un atributo estático de la clase.
  • Cuando se llama un método estático de la clase.
  • Cuando se registra un método de programa de control de eventos para un evento en la Clase

Cuando define los constructores estáticos, siempre debe tener en cuenta los puntos siguientes:

  • Cada clase no tiene más que un constructor estático.
  • El constructor estático debe definirse en el área pública.
  • La firma del constructor no puede tener parámetros de importación ni excepciones.
  • El constructor estático no puede llamarse de forma explícita.

En este artículo se va a crear en un programa ejecutable, una clase llamada PRODUCTO donde se implementarán los constructores de instancia y estático. Dentro de cada constructor se utiliza la sentencia WRITE con una cadena de caracteres que identifica cada constructor. Se Instancia un objeto de la clase en el evento START-OF-SELECTION y en la salida se comprueba qué constructor se llama primero.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *