<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>class &#8211; SAP EWM Help</title>
	<atom:link href="https://www.sapewmhelp.com/question-tag/class/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sapewmhelp.com</link>
	<description>SAP EWM questions answered by experts — ABAP, S/4HANA, warehouse management</description>
	<lastBuildDate>Sun, 03 Aug 2025 06:42:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>
	<item>
		<title>What is an Interface in SAP ABAP?</title>
		<link>https://www.sapewmhelp.com/question/what-is-an-interface-in-sap-abap/</link>
					<comments>https://www.sapewmhelp.com/question/what-is-an-interface-in-sap-abap/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Sun, 03 Aug 2025 06:42:49 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=what-is-an-interface-in-sap-abap</guid>

					<description><![CDATA[An interface in ABAP defines a contract that any implementing class must follow. It contains only declarations of: Methods (without implementation) Constants Types Attributes Interfaces do not contain implementation. Any class that implements an interface must provide the logic for all its methods. Feature Description No implementation Only method signatures are defined. Multiple interfaces A [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>An interface in ABAP defines a contract that any implementing class must follow. It contains only declarations of:</p>
<ul>
<li>Methods (without implementation)</li>
<li>Constants</li>
<li>Types</li>
<li>Attributes</li>
</ul>
<p>Interfaces do not contain implementation. Any class that implements an interface must provide the logic for all its methods.</p>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>No implementation</td>
<td>Only method signatures are defined.</td>
</tr>
<tr>
<td>Multiple interfaces</td>
<td>A class can implement <strong>more than one</strong> interface.</td>
</tr>
<tr>
<td>Full implementation required</td>
<td>All interface methods <strong>must be implemented</strong> in the class.</td>
</tr>
<tr>
<td>Promotes loose coupling</td>
<td>Ideal for modular, testable, flexible code.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Code:</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code><!--StartFragment --><span><span>REPORT </span>zrep_lclclass<span>.</span>

<span>INTERFACE </span>if_animal<span>.</span>
  <span>METHODS</span><span>:</span>
    speak<span>,</span>
    <span>move</span><span>.</span>
<span>ENDINTERFACE</span><span>.</span>

<span>" Class that implements the interface</span>
<span>CLASS </span>lcl_dog <span>DEFINITION</span><span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
    <span>INTERFACES</span><span>: </span>if_animal<span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>CLASS </span>lcl_dog <span>IMPLEMENTATION</span><span>.</span>
  <span>METHOD </span>if_animal<span>~</span>speak<span>.</span>
    <span>WRITE</span><span>: </span>'Woof!'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

  <span>METHOD </span>if_animal<span>~</span><span>move</span><span>.</span>
    <span>WRITE</span><span>: </span>'Dog <span>is </span>running'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>START-OF-SELECTION</span><span>.</span>
  <span>DATA</span><span>(</span>lo_dog<span>) </span><span>= </span><span>NEW </span>lcl_dog<span>( </span><span>)</span><span>.</span>
  lo_dog<span>-&gt;</span>if_animal<span>~</span>speak<span>( </span><span>)</span><span>.</span>
  lo_dog<span>-&gt;</span>if_animal<span>~</span><span>move</span><span>( </span><span>)</span><span>.</span></span> </code></pre>
<p>Output:</p>
<p><img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/interface.png" /></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/what-is-an-interface-in-sap-abap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is an Abstract Class in SAP ABAP?</title>
		<link>https://www.sapewmhelp.com/question/what-is-an-abstract-class-in-sap-abap/</link>
					<comments>https://www.sapewmhelp.com/question/what-is-an-abstract-class-in-sap-abap/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Sun, 03 Aug 2025 06:37:17 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=what-is-an-abstract-class-in-sap-abap</guid>

					<description><![CDATA[An abstract class is a class that cannot be instantiated directly. It serves as a blueprint for other classes. Abstract classes typically include: Abstract methods, which are declared but not implemented. Concrete methods, which can be implemented and inherited. Feature Description Not instantiable Cannot use CREATE OBJECT on abstract classes. Used for inheritance Serve as [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>An abstract class is a class that cannot be instantiated directly. It serves as a blueprint for other classes. Abstract classes typically include:</p>
<ul>
<li>Abstract methods, which are declared but not implemented.</li>
<li>Concrete methods, which can be implemented and inherited.</li>
</ul>
<table>
<thead>
<tr>
<th>Feature</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Not instantiable</td>
<td>Cannot use <code>CREATE OBJECT</code> on abstract classes.</td>
</tr>
<tr>
<td>Used for inheritance</td>
<td>Serve as base classes for child classes.</td>
</tr>
<tr>
<td>Can contain abstract methods</td>
<td>These must be implemented in subclasses.</td>
</tr>
<tr>
<td>Can contain concrete methods</td>
<td>These can be used directly by child classes.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code><!--StartFragment --><span><span>REPORT </span>zrep_lclclass<span>.</span>

<span>CLASS </span>lcl_animal <span>DEFINITION </span>ABSTRACT<span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
    <span>METHODS</span><span>:</span>
      speak ABSTRACT<span>,</span>
      <span>move</span><span>.         </span><span>" This can be implemented if needed</span>
<span>ENDCLASS</span><span>.</span>

<span>CLASS </span>lcl_animal <span>IMPLEMENTATION</span><span>.</span>
  <span>METHOD </span><span>move</span><span>.</span>
    <span>WRITE</span><span>: </span>'Animal <span>is </span>moving'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>" Concrete subclass</span>
<span>CLASS </span>lcl_dog <span>DEFINITION </span><span>INHERITING </span><span>FROM </span>lcl_animal<span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
    <span>METHODS</span><span>:</span>
      speak <span>REDEFINITION</span><span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>CLASS </span>lcl_dog <span>IMPLEMENTATION</span><span>.</span>
  <span>METHOD </span>speak<span>.</span>
    <span>WRITE</span><span>: </span>'Woof!'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>START-OF-SELECTION</span><span>.</span>
  <span>" Parent Class</span>
  <span>DATA</span><span>(</span>lo_animal<span>) </span><span>= </span><span>NEW </span>lcl_animal<span>( </span><span>)</span><span>.</span>
  lo_animal<span>-&gt;</span>speak<span>( </span><span>)</span><span>.</span>
  <span>WRITE</span><span>: </span>'Animal can speak'<span>.</span>
  <span>SKIP</span><span>.</span>
  <span>" child class</span>
  <span>DATA</span><span>(</span>lo_dog<span>) </span><span>= </span><span>NEW </span>lcl_dog<span>( </span><span>)</span><span>.</span>
  lo_dog<span>-&gt;</span>speak<span>( </span><span>)</span><span>.</span>
  lo_dog<span>-&gt;</span><span>move</span><span>( </span><span>)</span><span>.</span></span> </code></pre>
<p>Output:<br />
Check the Program ( CTRL + F2 ).<br />
<img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/abstract-class.png" /></p>
<p>if not initated the Parent class then the output will be.<br />
<img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/abstract-class-2.png" /></p>
<p>Output:<br />
<img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/abstract-class-3.png" /></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/what-is-an-abstract-class-in-sap-abap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Constructor in ABAP</title>
		<link>https://www.sapewmhelp.com/question/constructor-in-abap/</link>
					<comments>https://www.sapewmhelp.com/question/constructor-in-abap/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 20:15:51 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=constructor-in-abap</guid>

					<description><![CDATA[A constructor is a special method automatically called when an object is created using CREATE OBJECT or NEW. Types of Constructors in ABAP Type Method Name Called On Purpose Instance Constructor CONSTRUCTOR When an object is created (NEW or CREATE OBJECT) To initialize instance-specific data Class Constructor CLASS_CONSTRUCTOR When the class is first used To [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A constructor is a special method automatically called when an object is created using CREATE OBJECT or NEW.</p>
<p>Types of Constructors in ABAP</p>
<table data-start="279" data-end="781">
<thead>
<tr>
<th data-start="279" data-end="304" data-col-size="sm">Type</th>
<th data-start="304" data-end="322" data-col-size="sm">Method Name</th>
<th data-start="322" data-end="350" data-col-size="md">Called On</th>
<th data-start="350" data-end="389" data-col-size="sm">Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Instance Constructor</strong></td>
<td><code>CONSTRUCTOR</code></td>
<td>When an object is created (<code>NEW</code> or <code>CREATE OBJECT</code>)</td>
<td>To initialize <strong>instance-specific</strong> data</td>
</tr>
<tr>
<td><strong>Class Constructor</strong></td>
<td><code>CLASS_CONSTRUCTOR</code></td>
<td>When the class is <strong>first used</strong></td>
<td>To initialize <strong>class-level (static)</strong> data</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code><!--StartFragment --><span><span>REPORT </span>zrep_lclclass<span>.</span>

<span>CLASS </span>zcl_demo <span>DEFINITION</span><span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
    <span>METHODS</span><span>: </span>constructor<span>,               </span><span>" Instance constructor</span>
             display_instance_value<span>.</span>

    <span>CLASS-METHODS</span><span>: </span>class_constructor<span>,  </span><span>" Class constructor</span>
                   display_class_value<span>.</span>

  <span>PRIVATE </span><span>SECTION</span><span>.</span>
    <span>DATA</span><span>: </span>lv_instance_val <span>TYPE </span>string<span>.</span>
    <span>CLASS-DATA</span><span>: </span>gv_class_val <span>TYPE </span>string<span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>CLASS </span>zcl_demo <span>IMPLEMENTATION</span><span>.</span>

  <span>" Instance Constructor</span>
  <span>METHOD </span>constructor<span>.</span>
    lv_instance_val <span>= </span>'Initialized <span>in </span>CONSTRUCTOR'<span>.</span>
    <span>WRITE</span><span>: </span>/ '&gt;&gt; Instance CONSTRUCTOR called'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

  <span>" Class Constructor</span>
  <span>METHOD </span>class_constructor<span>.</span>
    gv_class_val <span>= </span>'Initialized <span>in </span>CLASS_CONSTRUCTOR'<span>.</span>
    <span>WRITE</span><span>: </span>/ '&gt;&gt; CLASS_CONSTRUCTOR called <span>(</span>only once<span>)</span>'<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

  <span>METHOD </span>display_instance_value<span>.</span>
    <span>WRITE</span><span>: </span>/ 'Instance <span>value</span><span>:</span>'<span>, </span>lv_instance_val<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

  <span>METHOD </span>display_class_value<span>.</span>
    <span>WRITE</span><span>: </span>/ 'Class <span>value</span><span>:</span>'<span>, </span>gv_class_val<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

<span>ENDCLASS</span><span>.</span>

<span>START-OF-SELECTION</span><span>.</span>

<span>* Access class method (triggers class constructor first time)</span>
  zcl_demo<span>=&gt;</span>display_class_value<span>( </span><span>)</span><span>.</span>

  <span>SKIP</span><span>.</span>

<span>* Create object (triggers instance constructor)</span>
  <span>DATA</span><span>(</span>lo_obj1<span>) </span><span>= </span><span>NEW </span>zcl_demo<span>( </span><span>)</span><span>.</span>
  lo_obj1<span>-&gt;</span>display_instance_value<span>( </span><span>)</span><span>.</span>

  <span>SKIP</span><span>.</span>

<span>* Create another object (instance constructor runs again, but not class constructor)</span>
  <span>DATA</span><span>(</span>lo_obj2<span>) </span><span>= </span><span>NEW </span>zcl_demo<span>( </span><span>)</span><span>.</span>
  lo_obj2<span>-&gt;</span>display_instance_value<span>( </span><span>)</span><span>.</span>

  <span>SKIP</span><span>.</span>

<span>* Access class method again (class constructor NOT triggered again)</span>
  zcl_demo<span>=&gt;</span>display_class_value<span>( </span><span>)</span><span>.</span></span> </code></pre>
<p>Output:</p>
<p><img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/constructor-and-type.png" /></p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/constructor-in-abap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is Singleton Class ? how to use Singleton class in SAP ABAP ?</title>
		<link>https://www.sapewmhelp.com/question/what-is-singleton-class-how-to-use-singleton-class-in-sap-abap/</link>
					<comments>https://www.sapewmhelp.com/question/what-is-singleton-class-how-to-use-singleton-class-in-sap-abap/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 19:28:18 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=what-is-singleton-class-how-to-use-singleton-class-in-sap-abap</guid>

					<description><![CDATA[A Singleton class is a design pattern that restricts the instantiation of a class to one single object throughout the lifecycle of a program. This is useful when exactly one object is needed to coordinate actions across the system — such as logging, configuration management, or connection handling. Key Characteristics of Singleton Pattern: Only one instance of the class [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A<span> </span><strong>Singleton class</strong><span> </span>is a design pattern that restricts the instantiation of a class to<span> </span><strong>one single object</strong><span> </span>throughout the lifecycle of a program. This is useful when exactly one object is needed to coordinate actions across the system — such as logging, configuration management, or connection handling.</p>
<h3 data-start="346" data-end="391">Key Characteristics of Singleton Pattern:</h3>
<ul>
<li>Only one instance of the class exists.</li>
<li>The class controls its own instantiation.</li>
<li>A global access point is provided to access.</li>
</ul>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code><!--StartFragment --><span><span>*&amp;---------------------------------------------------------------------*</span>
<span>*&amp; Report  ZREP_LCLCLASS</span>
<span>*&amp;</span>
<span>*&amp;---------------------------------------------------------------------*</span>
<span>*&amp;</span>
<span>*&amp;</span>
<span>*&amp;---------------------------------------------------------------------*</span>

<span>REPORT </span>zrep_lclclass<span>.</span>

<span>CLASS </span>lcl_class_singleton <span>DEFINITION </span><span>CREATE </span><span>PRIVATE</span><span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
  <span>" to check the instance is created or not.</span>
    <span>CLASS-METHODS</span><span>: </span>m_factory RETURNING <span>VALUE</span><span>(</span>r_instance<span>) </span><span>TYPE </span><span>REF </span><span>TO </span>lcl_class_singleton<span>.</span>
  <span>" getter and setter methods</span>
    <span>METHODS </span><span>: </span>get_attribute RETURNING <span>VALUE</span><span>(</span>r_attribute<span>) </span><span>TYPE </span><span>i</span><span>,</span>
              set_attribute <span>IMPORTING </span>m_attribute <span>TYPE </span><span>i</span><span>.</span>

  <span>PRIVATE </span><span>SECTION</span><span>.</span>
<span>*    CLASS-DATA: obj_instance TYPE REF TO lcl_class_singleton.</span>
    <span>DATA </span>gv_attribute <span>TYPE </span><span>i</span><span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>class </span>lcl_class_singleton <span>IMPLEMENTATION</span><span>.</span>
    <span>method </span>m_factory<span>.</span>
        <span>if </span>r_instance <span>is </span><span>not </span><span>BOUND</span><span>.</span>
            r_instance <span>= </span><span>new </span>lcl_class_singleton<span>( </span><span>)</span><span>.</span>
        <span>endif</span><span>.</span>
   <span>ENDMETHOD</span><span>.</span>

   <span>method </span>get_attribute<span>.</span>
       r_Attribute <span>= </span>gv_Attribute<span>.</span>
   <span>ENDMETHOD</span><span>.</span>

   <span>method </span>set_attribute<span>.</span>
     gv_Attribute <span>=  </span>m_attribute<span>.</span>
   <span>ENDMETHOD</span><span>.</span>
 <span>ENDCLASS</span><span>.</span>

 <span>START-OF-SELECTION</span><span>.</span>
 <span>" create an instance of class</span>
   <span>data</span><span>(</span>lo_obj<span>) </span><span>=  </span>lcl_class_singleton<span>=&gt;</span>m_factory<span>( </span><span>)</span><span>.</span>
 <span>" set the value for the attribute.</span>
   lo_obj<span>-&gt;</span>set_attribute<span>( </span><span>10 </span><span>)</span><span>.</span>

   <span>" try to create another instace of the class.</span>
    <span>data</span><span>(</span>lo_obj2<span>) </span><span>= </span>lcl_class_singleton<span>=&gt;</span>m_factory<span>( </span><span>)</span><span>.</span>
   <span>" check the attribute of the new instance</span>
   <span>" it should be same as go_obj as it contains a static attribute</span>
   <span>" get the data and print it.</span>
   <span>write</span><span>: </span>'First object attribute <span>value </span>'<span>, </span>lo_obj<span>-&gt;</span>get_attribute<span>( </span><span>)</span><span>.</span>
   <span>write </span><span>:</span>/ 'Second object attribute <span>value </span>'<span>, </span>lo_obj2<span>-&gt;</span>get_attribute<span>( </span><span>)</span><span>.</span></span> 
</code></pre>
<p>Output:<br />
<img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/SIngleton-class-2.png" /></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/what-is-singleton-class-how-to-use-singleton-class-in-sap-abap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What is the difference between static and instance Members in SAP OOABAP ?</title>
		<link>https://www.sapewmhelp.com/question/what-is-the-difference-between-static-and-instance-members-in-sap-ooabap/</link>
					<comments>https://www.sapewmhelp.com/question/what-is-the-difference-between-static-and-instance-members-in-sap-ooabap/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Wed, 30 Jul 2025 17:30:46 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=what-is-a-constructor-in-ooabap-and-how-is-it-used</guid>

					<description><![CDATA[Instance Members (Methods &#38; Data) Belong to individual objects (instances). Created using DATA and METHODS. Each object has its own copy of the data. Accessed using the object reference: lo_obj-&#62;method_name. Useful when each object should maintain its own state. Destroyed when the object goes out of scope. Static Members (Methods &#38; Data) Belong to the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Instance Members (Methods &amp; Data)</strong></p>
<ul>
<li>Belong to individual objects (instances).</li>
<li>Created using DATA and METHODS.</li>
<li>Each object has its own copy of the data.</li>
<li>Accessed using the object reference: lo_obj-&gt;method_name.</li>
<li>Useful when each object should maintain its own state.</li>
<li>Destroyed when the object goes out of scope.</li>
</ul>
<p><strong>Static Members (Methods &amp; Data)</strong></p>
<ul>
<li>Belong to the class itself, not any particular object.</li>
<li>Created using CLASS-DATA and CLASS-METHODS.</li>
<li>Only one copy exists for the entire class.</li>
<li>Accessed using the class name: zcl_class_name=&gt;method_name.</li>
<li>Useful for shared data, like counters, configuration, or logging.</li>
<li>Exist as long as the class is loaded in memory.</li>
</ul>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code><!--StartFragment --><span><span>*&amp;---------------------------------------------------------------------*</span>
<span>*&amp; Report  ZREP_LCLCLASS</span>
<span>*&amp;</span>
<span>*&amp;---------------------------------------------------------------------*</span>
<span>*&amp;</span>
<span>*&amp;</span>
<span>*&amp;---------------------------------------------------------------------*</span>

<span>REPORT </span>zrep_lclclass<span>.</span>

<span>CLASS </span>zcl_static_instance_demo <span>DEFINITION</span><span>.</span>
  <span>PUBLIC </span><span>SECTION</span><span>.</span>
    <span>" Instance attribute and method</span>
    <span>DATA</span><span>: </span>gv_instance_value <span>TYPE </span><span>i</span><span>.</span>
    <span>METHODS</span><span>: </span>increase_instance_value<span>.</span>

    <span>" Static attribute and method</span>
    <span>CLASS-DATA</span><span>: </span>gv_static_value <span>TYPE </span><span>i</span><span>.</span>
    <span>CLASS-METHODS</span><span>: </span>increase_static_value<span>.</span>
<span>ENDCLASS</span><span>.</span>

<span>CLASS </span>zcl_static_instance_demo <span>IMPLEMENTATION</span><span>.</span>

  <span>METHOD </span>increase_instance_value<span>.</span>
    gv_instance_value <span>= </span>gv_instance_value + <span>1</span><span>.</span>
    <span>WRITE</span><span>: </span>/ 'Instance <span>Value</span><span>:</span>'<span>, </span>gv_instance_value<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

  <span>METHOD </span>increase_static_value<span>.</span>
    gv_static_value <span>= </span>gv_static_value + <span>1</span><span>.</span>
    <span>WRITE</span><span>: </span>/ 'Static <span>Value</span><span>:</span>'<span>, </span>gv_static_value<span>.</span>
  <span>ENDMETHOD</span><span>.</span>

<span>ENDCLASS</span><span>.</span>

<span>START-OF-SELECTION</span><span>.</span>

  <span>WRITE</span><span>: </span>/ '<span>-</span>-<span>- </span><span>Static </span><span>Method </span>Calls <span>(</span><span>No </span>object needed<span>) </span><span>-</span>-<span>-</span>'<span>.</span>
  zcl_static_instance_demo<span>=&gt;</span>increase_static_value<span>( </span><span>)</span><span>. </span><span>" 1</span>
  zcl_static_instance_demo<span>=&gt;</span>increase_static_value<span>( </span><span>)</span><span>. </span><span>" 2</span>

  <span>SKIP</span><span>.</span>

  <span>WRITE</span><span>: </span>/ '<span>-</span>-<span>- </span>Instance <span>Method </span>Calls <span>(</span><span>Using </span>object<span>) </span><span>-</span>-<span>-</span>'<span>.</span>
  <span>DATA</span><span>(</span>lo_obj1<span>) </span><span>= </span><span>NEW </span>zcl_static_instance_demo<span>( </span><span>)</span><span>.</span>
  lo_obj1<span>-&gt;</span>increase_instance_value<span>( </span><span>)</span><span>. </span><span>" 1</span>
  lo_obj1<span>-&gt;</span>increase_instance_value<span>( </span><span>)</span><span>. </span><span>" 2</span>

  <span>SKIP</span><span>.</span>

  <span>WRITE</span><span>: </span>/ '<span>-</span>-<span>- </span>Another Object <span>with </span>Separate Instance <span>-</span>-<span>-</span>'<span>.</span>
  <span>DATA</span><span>(</span>lo_obj2<span>) </span><span>= </span><span>NEW </span>zcl_static_instance_demo<span>( </span><span>)</span><span>.</span>
  lo_obj2<span>-&gt;</span>increase_instance_value<span>( </span><span>)</span><span>. </span><span>" 1 (separate from lo_obj1)</span>

  <span>SKIP</span><span>.</span>

  <span>WRITE</span><span>: </span>/ '<span>-</span>-<span>- </span><span>Static </span>Again <span>(</span>Still <span>shared</span><span>) </span><span>-</span>-<span>-</span>'<span>.</span>
  zcl_static_instance_demo<span>=&gt;</span>increase_static_value<span>( </span><span>)</span><span>. </span><span>" 3</span></span> 
</code></pre>
<p>Output :<br />
<img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/08/static-and-instace-3.png" /></p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/what-is-the-difference-between-static-and-instance-members-in-sap-ooabap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Use of Me Keyword in SAP ABAP</title>
		<link>https://www.sapewmhelp.com/question/use-of-me-keyword/</link>
					<comments>https://www.sapewmhelp.com/question/use-of-me-keyword/#respond</comments>
		
		<dc:creator><![CDATA[DPM125]]></dc:creator>
		<pubDate>Tue, 29 Jul 2025 19:32:30 +0000</pubDate>
				<guid isPermaLink="false">https://www.sapewmhelp.com/?question=use-of-me-keyword</guid>

					<description><![CDATA[When we create a variable in the public section of a class, we can use it within the methods of that class. Let&#8217;s say we assign it an initial value. Later, if we create another variable with the same name inside a method and assign it a new value, this new (local) value will be [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>When we create a variable in the public section of a class, we can use it within the methods of that class. Let&#8217;s say we assign it an initial value. Later, if we create another variable with the same name inside a method and assign it a new value, this new (local) value will be used within that method.</p>
<p>To access the original value from the class, we need to use the <strong>ME operator</strong>.</p>
<p>Example:</p>
<p>We first create a public variable v_txt with an initial value &#8216;Class Variable&#8217;. Then, inside a method, we declare another variable (local to the method) with the same name v_txt, but assign it a different value: &#8216;Method Variable&#8217;.</p>
<p>If we use v_txt directly in the method, it will reference the local variable, and we will get &#8216;Method Variable&#8217;.</p>
<p>If we use me-&gt;v_txt, we explicitly refer to the class attribute, and we get &#8216;Class Variable&#8217;.</p>
<p>Similarly, private and protected methods cannot be accessed directly from outside the class. However, we can call them from within another public method using the ME operator.</p>
<div class="hcb_wrap">
<pre class="prism line-numbers lang-python" data-lang="Python"><code></code><!--StartFragment --><!--StartFragment --><!--StartFragment --><span><span>*&amp;---------------------------------------------------------------------*</span><br /><span>*&amp; Report  ZREP_LCLCLASS</span><br /><span>*&amp;</span><br /><span>*&amp;---------------------------------------------------------------------*</span><br /><span>*&amp;</span><br /><span>*&amp;</span><br /><span>*&amp;---------------------------------------------------------------------*</span><br /><br /><span>REPORT </span>zrep_lclclass<span>.</span><br /><br /><span>" local class definition.</span><br /><span>CLASS </span>lcl_operator  <span>DEFINITION</span><span>.</span><br /><br />  <span>PUBLIC </span><span>SECTION</span><span>.</span><br /><br />    <span>DATA </span><span>: </span>v_txt <span>TYPE </span>string <span>VALUE </span>'Class Variable'<span>.</span><br />    <span>METHODS</span><span>: </span>m_operator<span>.</span><br />    <br />  <span>PROTECTED </span><span>SECTION</span><span>.</span><br />    <span>METHODS</span><span>: </span>m_protectedmethod<span>.</span><br />    <br />  <span>PRIVATE </span><span>SECTION</span><span>.</span><br />    <span>METHODS</span><span>: </span>m_privatemethod<span>.</span><br /><span>ENDCLASS</span><span>.</span><br /><br /><span>" local class implementation</span><br /><span>CLASS </span>lcl_operator <span>IMPLEMENTATION</span><span>.</span><br />  <span>METHOD </span>m_protectedmethod<span>.</span><br />    <span>WRITE </span><span>:</span>/ 'Hi <span>from </span><span>protected </span>method'<span>.</span><br />  <span>ENDMETHOD</span><span>.</span><br />  <span>METHOD </span>m_privatemethod<span>.</span><br />    <span>WRITE </span><span>:</span>/ 'Hi <span>from </span><span>private </span>method'<span>.</span><br />  <span>ENDMETHOD</span><span>.</span><br />  <span>METHOD </span>m_operator<span>.</span><br />    <span>DATA </span>v_txt <span>TYPE </span>string <span>VALUE </span>'Method Variable'<span>.</span><br /><br />    <span>WRITE</span><span>: </span>/ v_txt<span>,</span><br />           / me<span>-&gt;</span>v_txt<span>.</span><br />    me<span>-&gt;</span>m_protectedmethod<span>( </span><span>)</span><span>. </span><span>" protected method</span><br />    me<span>-&gt;</span>m_privatemethod<span>( </span><span>)</span><span>. </span><span>" private method</span><br />  <span>ENDMETHOD</span><span>.</span><br /><span>ENDCLASS</span><span>.</span><br /><br /><br /><span>START-OF-SELECTION</span><span>.</span><br /><br />  <span>" object for class.</span><br />  <span>DATA</span><span>(</span>lo_class<span>) </span><span>= </span><span>NEW </span>lcl_operator<span>( </span><span>)</span><span>.</span><br />  lo_class<span>-&gt;</span>m_operator<span>( </span><span>)</span><span>.<br /><br /><strong>OUTPUT : </strong></span></span></pre>
<p><img decoding="async" class="content-img" src="https://www.sapewmhelp.com/wp-content/uploads/2025/07/Me-operator.png" /></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.sapewmhelp.com/question/use-of-me-keyword/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
