Avalados por :
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
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
Este mensaje fue moderado.
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
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute