¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Explicación sobre el Constructor y el constructor de clase en ABAP: métodos especiales en SAP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 81 Vistas
0
Cargando...

Hola a todos

¿Alguien puede explicarme la funcionalidad sobre el Constructor y el constructor de clase??

Además de los métodos normales, que se llaman usando CALL METHOD, hay dos métodos especiales
llamados CONSTRUCTOR y CLASS_CONSTRUCTOR, que se llaman automáticamente cuando se
crea un objeto (CONSTRUCTOR) o cuando se accede por primera vez a los componentes de una clase
(CLASS_CONSTRUCTOR) 

He leído el documento mencionado anteriormente de los Documentos de SAP pero lo encontré un poco difícil de entender, ¿alguien puede ayudarme con esto por favor??

Gracias y saludos,

Arun Joseph

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

¡Hola!

Gracias Joseph

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola!

Constructor de instancia = El constructor es un método de instancia especial en una clase y siempre se llama CONSTRUCTOR.

El constructor se llama automáticamente en tiempo de ejecución con la instrucción CREATE OBJECT.

Algunos puntos importantes sobre el constructor:

  • Cada clase puede tener solo un constructor.

  • El constructor debe definirse en la SECCIÓN PÚBLICA.

  • La firma del constructor solo puede tener parámetros de importación y excepciones.

  • Cuando se generan excepciones en el constructor, las instancias no se crean y no se ocupa memoria principal.

Constructor estático = Este es un método estático especial en una clase y siempre se llama CLASS_CONSTRUCTOR. Se ejecuta una vez por programa. Este constructor se llama automáticamente antes de que la clase sea accedida por primera vez, pero antes de que se ejecuten cualquiera de las siguientes acciones por primera vez:

  • Crear una instancia de esta clase (CREATE OBJECT)

  • Acceder a un atributo estático de esta clase.

  • Llamar a un método estático de esta clase.

  • Registrar un método controlador de eventos para un evento en esta clase.

Algunos puntos importantes:

  • Cada clase tiene solo un constructor estático.

  • Este constructor debe definirse en la SECCIÓN PÚBLICA.

  • La firma del constructor no puede tener parámetros de importación o excepciones.

  • El constructor estático no puede ser llamado explícitamente.

Saludos

Abhijeet Kulshreshtha

Editado por: Abhijeet Kulshreshtha el 9 de julio de 2008 6:16 AM

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Este mensaje fue moderado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi,

Constructor

Implicitly, each class has an instance constructor method with the reserved name constructor and a static constructor method with the reserved name class_constructor.

The instance constructor is executed each time you create an object (instance) with the CREATE OBJECT statement, while the class constructor is executed exactly once before you first access a class.

The constructors are always present. However, to implement a constructor you must declare it explicitly with the METHODS or CLASS-METHODS statements. An instance constructor can have IMPORTING parameters and exceptions. You must pass all non-optional parameters when creating an object. Static constructors have no parameters.

Class Constructor

The static constructor is always called CLASS_CONSTRUCTER, and is called automatically before the class is first accessed, that is before any of the following actions are executed:

Creating an instance using CREATE_OBJECT

Addressing a static attribute using ->

Calling a static attribute using CALL METHOD

Registering a static event handler

Registering an event handler method for a static event

The static constructor cannot be called explicitly.

For better understanding check the following code:

REPORT z_constructor.

----


  • CLASS cl1 DEFINITION

----


*

----


CLASS cl1 DEFINITION.

PUBLIC SECTION.

METHODS:

add,

constructor IMPORTING v1 TYPE i

v2 TYPE i,

display.

CLASS-METHODS:

class_constructor.

PRIVATE SECTION.

DATA:

w_var1 TYPE i,

w_var2 TYPE i,

w_var3 TYPE i,

w_result TYPE i.

ENDCLASS. "cl1 DEFINITION

----


  • CLASS cl1 IMPLEMENTATION

----


*

----


CLASS cl1 IMPLEMENTATION.

METHOD constructor.

w_var1 = v1.

w_var2 = v2.

ENDMETHOD. "constructor

METHOD class_constructor.

WRITE:

/ 'This is a class or static constructor.'.

ENDMETHOD. "class_constructor

METHOD add.

w_result = w_var1 + w_var2.

ENDMETHOD. "add

METHOD display.

WRITE:

/'The result is = ',w_result.

ENDMETHOD. "display

endclass.

" Main program----


data:

ref1 type ref to cl1.

parameters:

w_var1 type i,

w_var2 type i.

start-of-selection.

create object ref1 exporting v1 = w_var1

v2 = w_var2.

ref1->add( ).

ref1->display( ).

Regards,

Anirban Bhattachar

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?