Creating Objects and Values
This section describes how data objects and instances are created and values constructed.
Creating an object or data object is equivalent to the dynamic creation of an instance of a data type
or a class. While instances of classes can only be created as described in this section, instances of
data types (data objects) declared using the statement
or related statements such as
CONSTANTS, are created automatically as named data objects when their
context is loaded into the
internal session. Data objects only need to be created dynamically if the data type is made known for
the first time when the program is executed, or if large amounts of memory are allocated only for short periods of time.
Dynamically created objects can only be addressed using reference variables, and can be deleted from the internal session by the garbage collector if they are no longer referenced.
Objects can be created using one of the following:
NEWfor creating objects in general expression positions and in functional operand positions
- The addition
INTOclause of ABAP SQL for the implicit creation of data objects as target areas.
Data objects and objects are created by default in the internal session of the current program, and only programs in the same internal session can access them. The following, however, can also be created:
The use of the statement
ASSIGN LOCAL COPY to create objects is now obsolete.
The attribute values of a new instance of a class can be constructed using the
of the class. The input parameters of the instance constructor can be filled using the
addition of the statement
or using actual parameters for the instance operator
The values of dynamically created or statically declared data objects can be constructed using the following constructor expressions:
- When anonymous data objects are created dynamically using the instance operator
NEW, values for all data types, particularly structured and tabular types, can be constructed and assigned to the new data object.
- The value operator
VALUEcan also be used to construct the content of complex data objects (structures, internal tables). This goes beyond what is possible using the
Like any constructor expression, the value operator
VALUE can be used in
general expression positions and in
functional operand positions, in particular on the right side of an assignment to an
Inline declarations of a reference variable
dref and a structured variable
dobj. The instance operator
NEW creates an anonymous
data object, referenced by
dref. Using functional method calls, the instance
NEW and the value operator
VALUE are used to construct and assign values for the components of the structures.
col2 = meth->get_col1( ) ).
DATA(dobj) = VALUE struct( col1 = meth->get_col1( )
col2 = meth->get_col1( ) ).