CLASS-METHODS - class_constructor
Short Reference
ABAP Syntax CLASS-METHODS class_constructor.
What does it do? This statement declares the static constructor
class_constructor of the class. It can only be used in the
public
visibility section of the declaration section of a class.
Each class has a predefined method class_constructor in its
public visibility section. Its functions can be implemented
class-specifically by explicit declaration. Without explicit dec
laration, the static constructor is empty.
The static constructor is automatically called exactly once per class
and internal session before the class is first accessed. An access to
the class is the creation of an instance of the class or the addressing
of a static component using the class component selector.
When a subclass is first accessed, the inheritance tree is searched
for the next-highest superclass whose static constructor was not yet
called. Then the static constructor of this superclass is executed
followed by those of all subsequent subclasses up to the subclass in
question. The static constructor must be fully executed, otherwise a
runtime error occurs.
Like all static methods, the static constructor can only access the
static components of its class. Furthermore, the static constructor
cannot explicitly address its own class.
Latest notes:
Like instance constructors, static constructors are also an exception
to the rule that all public components along a path in the inheritance
tree are in one namespace.
The point at which the static constructor is called has not yet been
finalized. We can currently ensure only that it will be called before
the class is accessed for the first time. For this reason, static
methods may be executed before the static constructor was ended.
The execution sequence of static constructors is dependent on the
program flow. Static constructors must be implemented so that they can
be executed in any sequence.
In static constructors, you cannot declare class-based exceptions
using RAISING , since it is generally not specified whether the
user of a class is the first user and whether or not he must handle
exceptions propagated by the static constructor.
If a statc component of a superclass
is addressed using the name of a subclass, then the superclass is
addressed and its static constructor is executed, but not the static
constructor of the subclass.
An unsuccessful dynamic access to a nonexistent component of a class
does not count as an access to the class and the static constructor is
not executed in this case.
Example ABAP Coding When a class is first accessed, the static constructor
of this class uses the system field sy-repid to set the static
attribute access_program for the name of the program of an
internal session that uses the class first.
CLASS some_class DEFINITION.
PUBLIC SECTION.
CLASS-METHODS class_constructor.
PRIVATE SECTION.
CLASS-DATA access_program TYPE sy-repid.
ENDCLASS.
CLASS some_class IMPLEMENTATION.
METHOD class_constructor.
access_program = sy-repid.
ENDMETHOD.
ENDCLASS.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved