<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: class methods in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173896#M461453</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;are you talking about a global class with a local class inside? Then maybe somehow the includes are messed up. In SE24, there is somewhere a menu entry "Regenerate sections" which solves such problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Björn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 12 May 2007 19:38:01 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-12T19:38:01Z</dc:date>
    <item>
      <title>class methods</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173893#M461450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have created a local class method check_method,in one include.I am calling that method CALL METHOD main=&amp;gt;check_path  in the main program.&lt;/P&gt;&lt;P&gt;when i click on check_path cursor is not going to method.when i click on main it going to definiton part,but whan i click on check_path it is not going to implementation.plz.solve my problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sai Prasad&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2007 04:52:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173893#M461450</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-09T04:52:32Z</dc:date>
    </item>
    <item>
      <title>Re: class methods</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173894#M461451</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai Sai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good ... Check  out the following examples &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Define, implement and use simple class&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZBC404_HF_LCL_AIRPLANE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Definition part&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Public section&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: t_name(25) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      constructor,&lt;/P&gt;&lt;P&gt;      set_attributes IMPORTING p_name       TYPE t_name&lt;/P&gt;&lt;P&gt;                               p_planetype  TYPE saplane-planetype,&lt;/P&gt;&lt;P&gt;      display_attributes,&lt;/P&gt;&lt;P&gt;      display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Private section&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Private attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DATA: name(25) TYPE c,&lt;/P&gt;&lt;P&gt;          planetype TYPE saplane-planetype.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Private static attribute&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLASS-DATA n_o_airplanes TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Implementation part&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Counts number of instances&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    n_o_airplanes = n_o_airplanes + 1.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD set_attributes.&lt;/P&gt;&lt;P&gt;    name      = p_name.&lt;/P&gt;&lt;P&gt;    planetype = p_planetype.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_attributes.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Name:', name, 'Planetype:', planetype.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;    WRITE: / 'No. planes:', n_o_airplanes.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbc404_hf_maintain_airplanes .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_airplane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create reference to class lcl_airplane&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: airplane1 TYPE REF TO lcl_airplane,&lt;/P&gt;&lt;P&gt;      airplane2 TYPE REF TO lcl_airplane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create instance&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT airplane1.&lt;/P&gt;&lt;P&gt;  CALL METHOD: airplane1-&amp;gt;display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT airplane2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setting attributes using a method with parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD airplane1-&amp;gt;set_attributes EXPORTING p_name      = 'Kurt'&lt;/P&gt;&lt;P&gt;                                                  p_planetype = 'MD80'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Using methods &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD: airplane1-&amp;gt;display_n_o_airplanes,&lt;/P&gt;&lt;P&gt;               airplane1-&amp;gt;display_attributes.  &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;The resulting report:&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Maintain airplanes                                                                                &lt;/P&gt;&lt;P&gt;No. planes:          1                                 &lt;/P&gt;&lt;P&gt;No. planes:          2                                 &lt;/P&gt;&lt;P&gt;Name: Kurt                      Planetype: MD80        &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Use constructor to create an object with parameters&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: t_name(25) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      constructor    importing p2_name      type t_name&lt;/P&gt;&lt;P&gt;                               p2_planetype  TYPE saplane-planetype,&lt;/P&gt;&lt;P&gt;..... more code .......&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    name      = p2_name.&lt;/P&gt;&lt;P&gt;    planetype = p2_planetype.&lt;/P&gt;&lt;P&gt;..... more code .......&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT airplane1 exporting p2_name = 'Hansemand'&lt;/P&gt;&lt;P&gt;                                    p2_planetype = 'Boing 747'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                                       &lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Subclassing&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;This example uses a superclass LCL_AIRPLANE and subclasses it into LCL_PASSENGER_AIRPLANE and LCL_CARGO_PLANE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LCL_AIRPLANE has a method display_n_o_airplanes that displays the number of object instances.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LCL_PASSENGER_AIRPLANE has the private instance attribute n_o_seats, and redefines the superclass method display_attributes, so it also displays n_o_seats.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LCL_CARGO_PLANE has the private instance attribute cargomax, and redefines the superclass method display_attributes, so it also displays cargomax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All instance attributes are provided by the cunstructor method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Superclass LCL_AIRPLANE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZBC404_HF_LCL_AIRPLANE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Definition part&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Public section&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: t_name(25) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      constructor    IMPORTING im_name      TYPE t_name&lt;/P&gt;&lt;P&gt;                               im_planetype  TYPE saplane-planetype,&lt;/P&gt;&lt;P&gt;      display_attributes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Static methods&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLASS-METHODS:&lt;/P&gt;&lt;P&gt;      display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Protected section&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-------------------------" /&gt;&lt;P&gt;  PROTECTED SECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Private attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DATA: name(25) TYPE c,&lt;/P&gt;&lt;P&gt;          planetype TYPE saplane-planetype.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Private static attribute&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLASS-DATA n_o_airplanes TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Implementation part&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_airplane IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    name      = im_name.&lt;/P&gt;&lt;P&gt;    planetype = im_planetype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Counts number of instances&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    n_o_airplanes = n_o_airplanes + 1.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_attributes.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Name:', name, 'Planetype:', planetype.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;    WRITE: / 'No. planes:', n_o_airplanes.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;Sub class LCL_PASSENGER_AIRPLANE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***INCLUDE ZBC404_HF_LCL_PASSENGER_PLANE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a subclass of class lcl_airplane&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_passenger_airplane DEFINITION INHERITING FROM lcl_airplane.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The constructor contains the parameters from the superclass&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  plus the parameters from the subclass&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      constructor IMPORTING im_name      TYPE t_name&lt;/P&gt;&lt;P&gt;                            im_planetype TYPE saplane-planetype&lt;/P&gt;&lt;P&gt;                            im_n_o_seats TYPE sflight-seatsmax,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Redefinition of superclass method display_attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      display_attributes REDEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA: n_o_seats TYPE sflight-seatsmax.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_passenger_airplane IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The constructor method of the superclass MUST be called withing the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  construtor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD super-&amp;gt;constructor&lt;/P&gt;&lt;P&gt;                          EXPORTING im_name      = im_name&lt;/P&gt;&lt;P&gt;                                    im_planetype = im_planetype.&lt;/P&gt;&lt;P&gt;    n_o_seats = im_n_o_seats.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The redefined  display_attributes method&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD display_attributes.&lt;/P&gt;&lt;P&gt;    CALL METHOD super-&amp;gt;display_attributes.&lt;/P&gt;&lt;P&gt;    WRITE: / 'No. seats:', n_o_seats.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;Sub class LCL_CARGO_PLANE&lt;/P&gt;&lt;P&gt;***INCLUDE ZBC404_HF_LCL_CARGO_PLANE .&lt;/P&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is a subclass of class lcl_airplane&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;P&gt;CLASS lcl_cargo_plane DEFINITION INHERITING FROM lcl_airplane.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    The constructor contains the parameters from the superclass&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    plus the parameters from the subclass&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      constructor IMPORTING im_name      TYPE t_name&lt;/P&gt;&lt;P&gt;                            im_planetype TYPE saplane-planetype&lt;/P&gt;&lt;P&gt;                            im_cargomax  type scplane-cargomax,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Redefinition of superclass method display_attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      display_attributes REDEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA:cargomax TYPE scplane-cargomax.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_cargo_plane IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The constructor method of the superclass MUST be called withing the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  constructor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD super-&amp;gt;constructor&lt;/P&gt;&lt;P&gt;                          EXPORTING im_name      = im_name&lt;/P&gt;&lt;P&gt;                                    im_planetype = im_planetype.&lt;/P&gt;&lt;P&gt;    cargomax = im_cargomax.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD display_attributes.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  The redefined  display_attributes method&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD super-&amp;gt;display_attributes.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Cargo max:', cargomax.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;The Main program that uses the classes&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbc404_hf_main .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Super class&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_airplane.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub classes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_passenger_plane.&lt;/P&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_cargo_plane.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type ref to sub classes. Note: It is not necesssary to make typeref to the superclass&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  o_passenger_airplane TYPE REF TO lcl_passenger_airplane,&lt;/P&gt;&lt;P&gt;  o_cargo_plane        TYPE REF TO lcl_cargo_plane.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display initial number of instances = 0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD  lcl_airplane=&amp;gt;display_n_o_airplanes.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create objects&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT o_passenger_airplane&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'LH505'&lt;/P&gt;&lt;P&gt;      im_planetype = 'Boing 747'&lt;/P&gt;&lt;P&gt;      im_n_o_seats = 350.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_cargo_plane&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'AR13'&lt;/P&gt;&lt;P&gt;      im_planetype = 'DC 3'&lt;/P&gt;&lt;P&gt;      im_cargomax = 35.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD o_passenger_airplane-&amp;gt;display_attributes.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_cargo_plane-&amp;gt;display_attributes.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call static method display_n_o_airplanes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note: The syntax for calling a superclass method, differs from the syntax when calling a subclass method.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When calling a superclass =&amp;gt; must be used instead of -&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD  lcl_airplane=&amp;gt;display_n_o_airplanes.&lt;/P&gt;&lt;P&gt;Result:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No. planes: 0 &lt;/P&gt;&lt;P&gt;Name: LH505 Planetype: Boing 747 &lt;/P&gt;&lt;P&gt;No. seats: 350 &lt;/P&gt;&lt;P&gt;Name: AR13 Planetype: DC 3 &lt;/P&gt;&lt;P&gt;Cargo max: 35,0000 &lt;/P&gt;&lt;P&gt;No. planes: 2 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;Polymorphism&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Polymorphism: When the same method is implemented differently in different classes. This can be done using enheritance, by redefining a method from the superclass in subclasses and implement it differently.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;Classes:&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lcl_airplane Superclass &lt;/P&gt;&lt;P&gt;lcl_cargo_airplane Subclass &lt;/P&gt;&lt;P&gt;lcl_passenger_airplane Subclass &lt;/P&gt;&lt;P&gt;The method estimate_fuel_consumption is implemented differently in the 3 classes, as it depends on the airplane type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Object from different classes are stored in an internal table (plane_list) consisting of references to the superclass, and the processed &lt;/P&gt;&lt;P&gt;identically for all the classes. &lt;/P&gt;&lt;P&gt;What coding for the estimate_fuel_consumption method taht is actually executed, depends on the dynamic type of the plane reference variable,&lt;/P&gt;&lt;P&gt; that is, depends on which object plane points to.&lt;/P&gt;&lt;P&gt;DATA: cargo_plane            TYPE REF to lcl_cargo_airplane,&lt;/P&gt;&lt;P&gt;          passenger_plane    TYPE REF to lcl_passenger_airplane,&lt;/P&gt;&lt;P&gt;          plane_list                  TYPE TABLE OF REF TO lcl_airplane.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating the list of references&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CREATE OBJECT cargo_plane.&lt;/P&gt;&lt;P&gt;APPEND cargo_plane to plane_list.&lt;/P&gt;&lt;P&gt;CREATE OBJECT passenger_plane&lt;/P&gt;&lt;P&gt;APPEND passenger_plane to plane list.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generic method for calucalting required fuel&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;METHOD calculate required_fuel.&lt;/P&gt;&lt;P&gt;  DATA: plane TYPE REF TO lcl_airplane.&lt;/P&gt;&lt;P&gt;  LOOP AT plane_list INTO plane.&lt;/P&gt;&lt;P&gt;    re_fuel = re_fuel + plane-&amp;gt;estimate_fuel_consumption( distance ).&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;Working example:&lt;/P&gt;&lt;P&gt;This example assumes that the classes lcl_airplane,  lcl_passnger_airplane and lcl_cargo plane (Se Subcallsing)  exists.&lt;/P&gt;&lt;P&gt;Create objects of type lcl_cargo_plane and lcl_passenger_airplane, adds them to a list in lcl_carrier, and displays the list.  &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Include  ZBC404_HF_LCL_CARRIER                                      *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_carrier DEFINITION                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_carrier DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    TYPES: BEGIN OF flight_list_type,&lt;/P&gt;&lt;P&gt;              connid   TYPE sflight-connid,&lt;/P&gt;&lt;P&gt;              fldate   TYPE sflight-fldate,&lt;/P&gt;&lt;P&gt;              airplane TYPE REF TO lcl_airplane,&lt;/P&gt;&lt;P&gt;              seatsocc TYPE sflight-seatsocc,&lt;/P&gt;&lt;P&gt;              cargo(5) TYPE p DECIMALS 3,&lt;/P&gt;&lt;P&gt;           END OF flight_list_type.&lt;/P&gt;&lt;P&gt;    METHODS: constructor IMPORTING im_name TYPE string,&lt;/P&gt;&lt;P&gt;             get_name RETURNING value(ex_name) TYPE string,&lt;/P&gt;&lt;P&gt;             add_a_new_airplane IMPORTING&lt;/P&gt;&lt;P&gt;                                   im_airplane TYPE REF TO lcl_airplane,&lt;/P&gt;&lt;P&gt;    create_a_new_flight importing&lt;/P&gt;&lt;P&gt;                          im_connid   type sflight-connid&lt;/P&gt;&lt;P&gt;                          im_fldate   type sflight-fldate&lt;/P&gt;&lt;P&gt;                          im_airplane type ref to lcl_airplane&lt;/P&gt;&lt;P&gt;                          im_seatsocc type sflight-seatsocc&lt;/P&gt;&lt;P&gt;                                    optional&lt;/P&gt;&lt;P&gt;                        im_cargo    type p optional,&lt;/P&gt;&lt;P&gt;     display_airplanes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA: name              TYPE string,&lt;/P&gt;&lt;P&gt;          list_of_airplanes TYPE TABLE OF REF TO lcl_airplane,&lt;/P&gt;&lt;P&gt;          list_of_flights   TYPE TABLE OF flight_list_type.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_carrier IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_carrier IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    name = im_name.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD get_name.&lt;/P&gt;&lt;P&gt;    ex_name = name.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD create_a_new_flight.&lt;/P&gt;&lt;P&gt;    DATA: wa_list_of_flights TYPE flight_list_type.&lt;/P&gt;&lt;P&gt;    wa_list_of_flights-connid   = im_connid.&lt;/P&gt;&lt;P&gt;    wa_list_of_flights-fldate   = im_fldate.&lt;/P&gt;&lt;P&gt;    wa_list_of_flights-airplane = im_airplane.&lt;/P&gt;&lt;P&gt;    IF im_seatsocc IS INITIAL.&lt;/P&gt;&lt;P&gt;      wa_list_of_flights-cargo = im_cargo.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_list_of_flights-seatsocc = im_seatsocc.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND wa_list_of_flights TO list_of_flights.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD add_a_new_airplane.&lt;/P&gt;&lt;P&gt;    APPEND im_airplane TO list_of_airplanes.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD display_airplanes.&lt;/P&gt;&lt;P&gt;    DATA: l_airplane TYPE REF TO lcl_airplane.&lt;/P&gt;&lt;P&gt;    LOOP AT list_of_airplanes INTO l_airplane.&lt;/P&gt;&lt;P&gt;      CALL METHOD l_airplane-&amp;gt;display_attributes.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbc404_hf_main .&lt;/P&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; This reprort uses class LCL_AIRPLNAE and subclasses&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LCL_CARGO_PLANE and LCL_PASSENGER_AIRPLANE and class LCL_CARRIER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*******************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Super class for airplanes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_airplane.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sub classes for airplanes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_passenger_plane.&lt;/P&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_cargo_plane.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Carrier class&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE zbc404_hf_lcl_carrier.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type ref to classes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  o_passenger_airplane  TYPE REF TO lcl_passenger_airplane,&lt;/P&gt;&lt;P&gt;  o_passenger_airplane2 TYPE REF TO lcl_passenger_airplane,&lt;/P&gt;&lt;P&gt;  o_cargo_plane         TYPE REF TO lcl_cargo_plane,&lt;/P&gt;&lt;P&gt;  o_cargo_plane2        TYPE REF TO lcl_cargo_plane,&lt;/P&gt;&lt;P&gt;  o_carrier             TYPE REF TO lcl_carrier.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create objects&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT o_passenger_airplane&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'LH505'&lt;/P&gt;&lt;P&gt;      im_planetype = 'Boing 747'&lt;/P&gt;&lt;P&gt;      im_n_o_seats = 350.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_passenger_airplane2&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'SK333'&lt;/P&gt;&lt;P&gt;      im_planetype = 'MD80'&lt;/P&gt;&lt;P&gt;      im_n_o_seats = 110.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_cargo_plane&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'AR13'&lt;/P&gt;&lt;P&gt;      im_planetype = 'DC 3'&lt;/P&gt;&lt;P&gt;      im_cargomax = 35.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_cargo_plane2&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      im_name      = 'AFL124'&lt;/P&gt;&lt;P&gt;      im_planetype = 'Iljutsin 2'&lt;/P&gt;&lt;P&gt;      im_cargomax = 35000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_carrier&lt;/P&gt;&lt;P&gt;    EXPORTING im_name = 'Spritisch Airways'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add passenger and cargo planes to the list of airplanes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD o_carrier-&amp;gt;add_a_new_airplane&lt;/P&gt;&lt;P&gt;     EXPORTING im_airplane = o_passenger_airplane.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_carrier-&amp;gt;add_a_new_airplane&lt;/P&gt;&lt;P&gt;     EXPORTING im_airplane = o_passenger_airplane2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD o_carrier-&amp;gt;add_a_new_airplane&lt;/P&gt;&lt;P&gt;     EXPORTING im_airplane = o_cargo_plane.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_carrier-&amp;gt;add_a_new_airplane&lt;/P&gt;&lt;P&gt;     EXPORTING im_airplane = o_cargo_plane2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display list of airplanes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method o_carrier-&amp;gt;display_airplanes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Result:&lt;/P&gt;&lt;P&gt;Name: LH505                     Planetype: Boing 747         &lt;/P&gt;&lt;P&gt;No. seats:       350                                         &lt;/P&gt;&lt;P&gt;Name: SK333                     Planetype: MD80              &lt;/P&gt;&lt;P&gt;No. seats:       110                                         &lt;/P&gt;&lt;P&gt;Name: AR13                      Planetype: DC 3              &lt;/P&gt;&lt;P&gt;Cargo max:             35,0000                               &lt;/P&gt;&lt;P&gt;Name: AFL124                    Planetype: Iljutsin 2        &lt;/P&gt;&lt;P&gt;Cargo max:         35.000,0000                               &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Events &lt;/P&gt;&lt;P&gt;Below is a simple example of how to implement an event.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbc404_hf_events_5.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_dog DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_dog DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Declare events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    EVENTS:&lt;/P&gt;&lt;P&gt;      dog_is_hungry&lt;/P&gt;&lt;P&gt;        EXPORTING value(ex_time_since_last_meal) TYPE i.&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      constructor&lt;/P&gt;&lt;P&gt;          IMPORTING im_name TYPE string,&lt;/P&gt;&lt;P&gt;      set_time_since_last_meal&lt;/P&gt;&lt;P&gt;          IMPORTING im_time TYPE i,&lt;/P&gt;&lt;P&gt;      on_dog_is_hungry FOR EVENT dog_is_hungry OF lcl_dog&lt;/P&gt;&lt;P&gt;          IMPORTING ex_time_since_last_meal.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_dog IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_dog IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD constructor.&lt;/P&gt;&lt;P&gt;    WRITE: / 'I am a dog and my name is', im_name.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD set_time_since_last_meal.&lt;/P&gt;&lt;P&gt;    IF im_time &amp;lt; 4.&lt;/P&gt;&lt;P&gt;      SKIP 1.&lt;/P&gt;&lt;P&gt;      WRITE: / 'You fool, I am not hungry yet'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Subsrcribe for event:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   set handler &amp;lt;Event handler method&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FOR &amp;lt;ref_sender&amp;gt;!FOR ALL INSTANCES [ACTIVATION &amp;lt;var&amp;gt;]&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SET HANDLER on_dog_is_hungry FOR ALL INSTANCES ACTIVATION 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Raise event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      RAISE EVENT dog_is_hungry&lt;/P&gt;&lt;P&gt;        EXPORTING ex_time_since_last_meal = im_time.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD on_dog_is_hungry.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Event method, called when the event dog_is_hungry is raised&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SKIP 1.&lt;/P&gt;&lt;P&gt;    WRITE: /  'I have not eaten for more than',&lt;/P&gt;&lt;P&gt;              ex_time_since_last_meal, ' hours'.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Give me something to eat NOW!'.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      R E P O R T&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: o_dog1 TYPE REF TO lcl_dog.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT o_dog1 EXPORTING im_name = 'Beefeater'.&lt;/P&gt;&lt;P&gt;  CALL METHOD o_dog1-&amp;gt;set_time_since_last_meal&lt;/P&gt;&lt;P&gt;    EXPORTING im_time = 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This method call will raise the event dog_is_hungy&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;because time &amp;gt; 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD o_dog1-&amp;gt;set_time_since_last_meal&lt;/P&gt;&lt;P&gt;    EXPORTING im_time = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good Luck and thanks&lt;/P&gt;&lt;P&gt;AK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2007 07:41:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173894#M461451</guid>
      <dc:creator>ashok_kumar24</dc:creator>
      <dc:date>2007-05-09T07:41:04Z</dc:date>
    </item>
    <item>
      <title>Re: class methods</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173895#M461452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried in my system and could observe the following:&lt;/P&gt;&lt;P&gt;With local class, a double click on the method name jumps to the method definition.&lt;/P&gt;&lt;P&gt;It jumps to the method implementation only if the implementation and the call of this method are in the same include. As far as I know, there is no possibilty to change this behaviour.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Walter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2007 07:45:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173895#M461452</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-09T07:45:07Z</dc:date>
    </item>
    <item>
      <title>Re: class methods</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173896#M461453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;are you talking about a global class with a local class inside? Then maybe somehow the includes are messed up. In SE24, there is somewhere a menu entry "Regenerate sections" which solves such problems.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Björn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 12 May 2007 19:38:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/class-methods/m-p/2173896#M461453</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-12T19:38:01Z</dc:date>
    </item>
  </channel>
</rss>

