{"id":7228,"date":"2025-08-01T01:45:51","date_gmt":"2025-07-31T20:15:51","guid":{"rendered":"https:\/\/www.sapewmhelp.com\/?question=constructor-in-abap"},"modified":"2025-08-01T01:45:51","modified_gmt":"2025-07-31T20:15:51","slug":"constructor-in-abap","status":"publish","type":"question","link":"https:\/\/www.sapewmhelp.com\/?question=constructor-in-abap","title":{"rendered":"Constructor in ABAP"},"content":{"rendered":"<p>A constructor is a special method automatically called when an object is created using CREATE OBJECT or NEW.<\/p>\n<p>Types of Constructors in ABAP<\/p>\n<table data-start=\"279\" data-end=\"781\">\n<thead>\n<tr>\n<th data-start=\"279\" data-end=\"304\" data-col-size=\"sm\">Type<\/th>\n<th data-start=\"304\" data-end=\"322\" data-col-size=\"sm\">Method Name<\/th>\n<th data-start=\"322\" data-end=\"350\" data-col-size=\"md\">Called On<\/th>\n<th data-start=\"350\" data-end=\"389\" data-col-size=\"sm\">Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Instance Constructor<\/strong><\/td>\n<td><code>CONSTRUCTOR<\/code><\/td>\n<td>When an object is created (<code>NEW<\/code> or <code>CREATE OBJECT<\/code>)<\/td>\n<td>To initialize <strong>instance-specific<\/strong> data<\/td>\n<\/tr>\n<tr>\n<td><strong>Class Constructor<\/strong><\/td>\n<td><code>CLASS_CONSTRUCTOR<\/code><\/td>\n<td>When the class is <strong>first used<\/strong><\/td>\n<td>To initialize <strong>class-level (static)<\/strong> data<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code><!--StartFragment --><span><span>REPORT\u00a0<\/span>zrep_lclclass<span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>zcl_demo\u00a0<span>DEFINITION<\/span><span>.<\/span>\r\n\u00a0\u00a0<span>PUBLIC\u00a0<\/span><span>SECTION<\/span><span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>METHODS<\/span><span>:\u00a0<\/span>constructor<span>,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span>\"\u00a0Instance\u00a0constructor<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display_instance_value<span>.<\/span>\r\n\r\n\u00a0\u00a0\u00a0\u00a0<span>CLASS-METHODS<\/span><span>:\u00a0<\/span>class_constructor<span>,\u00a0\u00a0<\/span><span>\"\u00a0Class\u00a0constructor<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display_class_value<span>.<\/span>\r\n\r\n\u00a0\u00a0<span>PRIVATE\u00a0<\/span><span>SECTION<\/span><span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>DATA<\/span><span>:\u00a0<\/span>lv_instance_val\u00a0<span>TYPE\u00a0<\/span>string<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>CLASS-DATA<\/span><span>:\u00a0<\/span>gv_class_val\u00a0<span>TYPE\u00a0<\/span>string<span>.<\/span>\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>CLASS\u00a0<\/span>zcl_demo\u00a0<span>IMPLEMENTATION<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>\"\u00a0Instance\u00a0Constructor<\/span>\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>constructor<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0lv_instance_val\u00a0<span>=\u00a0<\/span>'Initialized\u00a0<span>in\u00a0<\/span>CONSTRUCTOR'<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'&gt;&gt;\u00a0Instance\u00a0CONSTRUCTOR\u00a0called'<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>\"\u00a0Class\u00a0Constructor<\/span>\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>class_constructor<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0gv_class_val\u00a0<span>=\u00a0<\/span>'Initialized\u00a0<span>in\u00a0<\/span>CLASS_CONSTRUCTOR'<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'&gt;&gt;\u00a0CLASS_CONSTRUCTOR\u00a0called\u00a0<span>(<\/span>only\u00a0once<span>)<\/span>'<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>display_instance_value<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'Instance\u00a0<span>value<\/span><span>:<\/span>'<span>,\u00a0<\/span>lv_instance_val<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>METHOD\u00a0<\/span>display_class_value<span>.<\/span>\r\n\u00a0\u00a0\u00a0\u00a0<span>WRITE<\/span><span>:\u00a0<\/span>\/\u00a0'Class\u00a0<span>value<\/span><span>:<\/span>'<span>,\u00a0<\/span>gv_class_val<span>.<\/span>\r\n\u00a0\u00a0<span>ENDMETHOD<\/span><span>.<\/span>\r\n\r\n<span>ENDCLASS<\/span><span>.<\/span>\r\n\r\n<span>START-OF-SELECTION<\/span><span>.<\/span>\r\n\r\n<span>*\u00a0Access\u00a0class\u00a0method\u00a0(triggers\u00a0class\u00a0constructor\u00a0first\u00a0time)<\/span>\r\n\u00a0\u00a0zcl_demo<span>=&gt;<\/span>display_class_value<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>SKIP<\/span><span>.<\/span>\r\n\r\n<span>*\u00a0Create\u00a0object\u00a0(triggers\u00a0instance\u00a0constructor)<\/span>\r\n\u00a0\u00a0<span>DATA<\/span><span>(<\/span>lo_obj1<span>)\u00a0<\/span><span>=\u00a0<\/span><span>NEW\u00a0<\/span>zcl_demo<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\u00a0\u00a0lo_obj1<span>-&gt;<\/span>display_instance_value<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>SKIP<\/span><span>.<\/span>\r\n\r\n<span>*\u00a0Create\u00a0another\u00a0object\u00a0(instance\u00a0constructor\u00a0runs\u00a0again,\u00a0but\u00a0not\u00a0class\u00a0constructor)<\/span>\r\n\u00a0\u00a0<span>DATA<\/span><span>(<\/span>lo_obj2<span>)\u00a0<\/span><span>=\u00a0<\/span><span>NEW\u00a0<\/span>zcl_demo<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\u00a0\u00a0lo_obj2<span>-&gt;<\/span>display_instance_value<span>(\u00a0<\/span><span>)<\/span><span>.<\/span>\r\n\r\n\u00a0\u00a0<span>SKIP<\/span><span>.<\/span>\r\n\r\n<span>*\u00a0Access\u00a0class\u00a0method\u00a0again\u00a0(class\u00a0constructor\u00a0NOT\u00a0triggered\u00a0again)<\/span>\r\n\u00a0\u00a0zcl_demo<span>=&gt;<\/span>display_class_value<span>(\u00a0<\/span><span>)<\/span><span>.<\/span><\/span> <\/code><\/pre>\n<p>Output:<\/p>\n<p><img decoding=\"async\" class=\"content-img\" src=\"https:\/\/www.sapewmhelp.com\/wp-content\/uploads\/2025\/08\/constructor-and-type.png\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","question-category":[174],"question_tags":[178,171,197,217,168,177],"class_list":["post-7228","question","type-question","status-publish","hentry","question-category-ooabap","question_tags-abap","question_tags-class","question_tags-constructor","question_tags-object-orineted-programming","question_tags-ooabap","question_tags-sap"],"_links":{"self":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question\/7228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/question"}],"about":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/types\/question"}],"author":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7228"}],"wp:attachment":[{"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7228"}],"wp:term":[{"taxonomy":"question-category","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion-category&post=7228"},{"taxonomy":"question_tags","embeddable":true,"href":"https:\/\/www.sapewmhelp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fquestion_tags&post=7228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}