<?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>constructor &#8211; SAP EWM Help</title>
	<atom:link href="https://www.sapewmhelp.com/question-tag/constructor/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>Thu, 31 Jul 2025 20:29:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>
	<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 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>
	</channel>
</rss>
