2008 Oct 22 6:42 AM
Hi experts,
When executing a simple oops program ..i got the following error. Please correct the code.
"VAR" is not type-compatible with formal parameter "I_DATA".
----
CLASS main DEFINITION
----
CLASS main DEFINITION.
PUBLIC SECTION.
"// Instance Methods ( Note we use the statement 'METHODS'
"// to define an instance method )
METHODS set_data IMPORTING i_data TYPE string.
METHODS get_data RETURNING value(r_data) TYPE string.
METHODS print_attribute IMPORTING i_data TYPE string.
"// Instance Methods ( Note we use the statement 'CLASS-METHODS'
"// to define a static method )
CLASS-METHODS set_classdata IMPORTING i_data TYPE string.
CLASS-METHODS get_classdata RETURNING value(r_data) TYPE string.
CLASS-METHODS print_classattribute IMPORTING i_data TYPE string.
PROTECTED SECTION.
"// Instance Attribute ( Note we use the statement 'DATA'
"// to define an instance attribute )
DATA attribute TYPE string.
"// Static Attribute ( Note we use the statement 'CLASS-DATA'
"// to define a static attribute )
CLASS-DATA classattribute TYPE string.
PRIVATE SECTION.
"// Instace event ( Note we use the statement 'EVENTS'
"// to define aN instance event )
EVENTS event EXPORTING value(e_data) TYPE string.
"// Instace event ( Note we use the statement 'CLASS-EVENTS'
"// to define a static event )
CLASS-EVENTS classevent EXPORTING value(e_data) TYPE string.
"// For more informations about events see the following example:
"// ABAP Objects - Creating your First Local Class - Using Events
ENDCLASS. "main DEFINITION
----
CLASS main IMPLEMENTATION
----
CLASS main IMPLEMENTATION.
METHOD set_data.
CONCATENATE 'Instance Attribute value' i_data
INTO attribute SEPARATED BY space.
ENDMETHOD. "set_data
METHOD get_data.
MOVE attribute TO r_data.
ENDMETHOD. "get_data
METHOD set_classdata.
CONCATENATE 'Static Attribute value' i_data
INTO classattribute SEPARATED BY space.
ENDMETHOD. "set_classdata
METHOD get_classdata.
MOVE main=>classattribute TO r_data.
ENDMETHOD. "get_classdata
METHOD print_attribute.
WRITE: i_data, /.
ENDMETHOD. "print_attribute
METHOD print_classattribute.
WRITE: i_data, /.
ENDMETHOD. "print_classattribute
ENDCLASS. "main IMPLEMENTATION
DATA: var type char20.
START-OF-SELECTION.
"// Calling a Static method (note we don't have a object )
"// instead we use the <class name>=><method name>.
main=>set_classdata( 'SDN' ).
var = main=>get_classdata( ).
"// Print the var value
main=>print_classattribute( var ).
DATA: object_reference TYPE REF TO main.
CREATE OBJECT object_reference.
"// - Calling a Instance Method( Note we have to use a object to
"// access the insntace components of class main )
"// - Note we're using the statment "CALL METHOD", see looking for
"// functional & General methods for more informations
CALL METHOD object_reference->set_data( 'BPX' ).
var = object_reference->get_data( ).
object_reference->print_attribute( var ).
Thanks in Advance.
Regards
Nani
2008 Oct 22 6:48 AM
Hi Nani,
try changing your data definition for var from CHAR20 to STRING.
regards,
Peter
Hi Nani,
try changing your data definition for var from CHAR20 to STRING.
regards,
Peter
2008 Oct 22 6:48 AM
Hi Nani,
try changing your data definition for var from CHAR20 to STRING.
regards,
Peter
2008 Oct 22 6:49 AM
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |