الثلاثاء، 20 أكتوبر 2020

SAP ABAP - Classes الفئات في ساب

 

SAP ABAP - Classes الفئات في ساب

SAP ABAP - Classes الفئات في ساب

SAP ABAP - Classes الفئات في ساب

يتم استخدام فئة لتحديد شكل الكائن وتجمع بين تمثيل البيانات وطرق معالجة تلك البيانات في حزمة واحدة أنيقة. تسمى البيانات والوظائف داخل الفصل بأعضاء الفصل .

ملاحظة المقصود بالفصل هنا الفئة والسمات هي الصفات والطرق هي الدوال والاساليب أيضا الدوال والمنشىء المشيد

تعريف الصنف والتنفيذ

عندما تحدد فئة ، فإنك تحدد مخططًا لنوع البيانات. هذا لا يحدد في الواقع أي بيانات ، لكنه يحدد ما يعنيه اسم الفئة ، وما الذي سيتألف منه كائن الفصل ، وما هي العمليات التي يمكن إجراؤها على هذا الكائن. أي أنه يحدد الخصائص المجردة للكائن ، مثل السمات والحقول والخصائص.

يوضح بناء الجملة التالي كيفية تحديد فئة -

CLASS <class_name> DEFINITION. 
.......... 
.......... 
ENDCLASS.

يبدأ تعريف الفئة بالكلمة الأساسية CLASS متبوعة باسم الفئة ، DEFINITION وجسم الفصل. يمكن أن يحتوي تعريف الفئة على مكونات مختلفة للفئة مثل السمات والطرق والأحداث. عندما نعلن عن طريقة في إعلان الفئة ، يجب تضمين تنفيذ الطريقة في تنفيذ الفئة. يوضح بناء الجملة التالي كيفية تنفيذ فصل دراسي -

CLASS <class_name> IMPLEMENTATION. 
........... 
.......... 
ENDCLASS.

ملاحظة - تنفيذ فئة تحتوي على تنفيذ جميع أساليبها. في كائنات ABAP ، تحتوي بنية الفئة على مكونات مثل السمات والطرق والأحداث والأنواع والثوابت.

السمات

السمات هي حقول بيانات لفئة يمكن أن تحتوي على أي نوع بيانات مثل C و I و F و N. ويتم التصريح عنها في إعلان الفصل. يمكن تقسيم هذه السمات إلى فئتين: سمات مثيل وثابتة. و السمة المثال تحدد الدولة مثلا محددة من كائن. الدول مختلفة لكائنات مختلفة. يتم التصريح عن سمة مثيل باستخدام عبارة DATA.

تحدد السمات الثابتة الحالة المشتركة للفئة التي تشترك فيها جميع حالات الفصل. بمعنى ، إذا قمت بتغيير سمة ثابتة في كائن واحد من فئة ، فسيكون التغيير مرئيًا لجميع الكائنات الأخرى في الفصل أيضًا. تم التصريح عن سمة ثابتة باستخدام عبارة CLASS-DATA.

طرق

الطريقة هي وظيفة أو إجراء يمثل سلوك كائن في الفصل الدراسي. يمكن لأساليب الفصل الوصول إلى أي سمة من سمات الفصل. يمكن أن يحتوي تعريف الطريقة أيضًا على معلمات ، بحيث يمكنك توفير القيم لهذه المعلمات عند استدعاء الطرق. يتم التصريح عن تعريف الطريقة في التصريح عن الفئة ويتم تنفيذه في جزء التنفيذ من الفئة. يتم استخدام عبارات METHOD و ENDMETHOD لتعريف جزء التنفيذ من الأسلوب. يوضح بناء الجملة التالي كيفية تنفيذ طريقة -

METHOD <m_name>. 
.......... 
.......... 
ENDMETHOD.

في بناء الجملة هذا ، يمثل <m_name> اسم الأسلوب. ملاحظة - يمكنك استدعاء طريقة باستخدام عبارة CALL METHOD.

الوصول إلى السمات والطرق

يمكن تعريف مكونات الفئة في أقسام الرؤية العامة أو الخاصة أو المحمية التي تتحكم في كيفية الوصول إلى هذه المكونات. يتم استخدام قسم الرؤية الخاصة لمنع الوصول إلى المكونات من خارج الفصل الدراسي. لا يمكن الوصول إلى هذه المكونات إلا من داخل الفصل مثل الطريقة.

يمكن الوصول إلى المكونات المحددة في قسم الرؤية العامة من أي سياق. بشكل افتراضي ، سيكون جميع أعضاء الفصل خاصًا. عمليا ، نحدد البيانات في القسم الخاص والأساليب ذات الصلة في القسم العام بحيث يمكن استدعاؤها من خارج الفصل كما هو موضح في البرنامج التالي.

  • يمكن الوصول إلى السمات والطرق المعلنة في القسم العام في الفصل بواسطة تلك الفئة وأي فئة أخرى ، فئة فرعية من البرنامج.

  • عندما يتم الإعلان عن السمات والطرق في القسم المحمي في الفصل ، يمكن الوصول إليها من خلال تلك الفئة والفئات الفرعية (الفئات المشتقة) فقط.

  • عندما يتم الإعلان عن السمات والطرق في القسم الخاص في الفصل ، يمكن الوصول إليها فقط من خلال تلك الفئة وليس بواسطة أي فئة أخرى.

مثال

Report ZAccess1. 
CLASS class1 Definition.
   PUBLIC Section.
      Data: text1 Type char25 Value 'Public Data'.
      Methods meth1.
		
   PROTECTED Section.
      Data: text2 Type char25 Value 'Protected Data'.
		
   PRIVATE Section.     
      Data: text3 Type char25 Value 'Private Data'. 
ENDCLASS.
 
CLASS class1 Implementation.   
   Method meth1.     
      Write: / 'Public Method:',   
             / text1,
             / text2,
             / text3.
      Skip.
   EndMethod.
ENDCLASS. 

Start-Of-Selection.   
   Data: Objectx Type Ref To class1.
   Create Object: Objectx.
   CALL Method: Objectxmeth1.
   Write: / Objectxtext1.

ينتج الكود أعلاه الناتج التالي -

Public Method: 
Public Data 
Protected Data 
Private Data
  
Public Data

السمات الثابتة

يتم التصريح عن سمة ثابتة من خلال عبارة CLASS-DATA. يمكن لجميع الكائنات أو الحالات استخدام السمة الثابتة للفئة. يتم الوصول إلى السمات الثابتة مباشرة بمساعدة اسم الفئة مثل class_name⇒name_1 = 'Some Text'.

مثال

فيما يلي برنامج حيث نريد طباعة نص برقم السطر من 4 إلى 8 مرات. نحدد فئة class1 وفي القسم العام نعلن عن CLASS-DATA (سمة ثابتة) وطريقة. بعد تنفيذ الفئة والطريقة ، نصل مباشرة إلى السمة الثابتة في حدث بدء التحديد. ثم نقوم فقط بإنشاء مثيل الفئة واستدعاء الطريقة.

Report ZStatic1. 
CLASS class1 Definition.   
   PUBLIC Section.
      CLASS-DATA: name1 Type char45,
                  data1 Type I.
   Methods: meth1. 
ENDCLASS. 

CLASS class1 Implementation.   
   Method meth1.
      Do 4 Times.
         data1 = 1 + data1.
         Write: / data1, name1.
      EndDo.
      Skip.
   EndMethod. 
ENDCLASS. 

Start-Of-Selection. 
   class1name1 = 'ABAP Object Oriented Programming'.
   class1data1 = 0.
   Data: Object1 Type Ref To class1,
         Object2 Type Ref To class1.
			
   Create Object: Object1, Object2.
   CALL Method: Object1meth1, 
                Object2meth1.

ينتج الكود أعلاه الناتج التالي -

السمات الثابتة

المنشئون

المُنشئون هم طرق خاصة يتم استدعاؤها تلقائيًا ، إما أثناء إنشاء كائن أو الوصول إلى مكونات الفصل. يتم تشغيل المُنشئ كلما تم إنشاء كائن ، لكننا نحتاج إلى استدعاء طريقة لتشغيل الطريقة العامة. في المثال التالي ، أعلنا عن طريقتين عامتين method1 و constructor. كلتا الطريقتين لهما عمليات مختلفة. أثناء إنشاء كائن من الفئة ، تقوم طريقة المُنشئ بتشغيل عملها.

مثال

Report ZConstructor1. 
CLASS class1 Definition.
   PUBLIC Section.
      Methods: method1, constructor.
ENDCLASS. 

CLASS class1 Implementation.
   Method method1.
      Write: / 'This is Method1'.
   EndMethod.
	
   Method constructor.
      Write: / 'Constructor Triggered'.
   EndMethod. 
ENDCLASS. 

Start-Of-Selection.
   Data Object1 Type Ref To class1.
   Create Object Object1.

ينتج الكود أعلاه الناتج التالي -

Constructor Triggered

مشغل ME في الأساليب

عندما تعلن عن متغير من أي نوع في القسم العام للفصل ، يمكنك استخدامه في أي تطبيق آخر. يمكن التصريح عن متغير بقيمة أولية في القسم العام. قد نعلن عن المتغير مرة أخرى داخل عملية بقيمة مختلفة. عندما نكتب المتغير داخل الطريقة ، سيقوم النظام بطباعة القيمة المتغيرة. لتعكس القيمة السابقة للمتغير ، علينا استخدام عامل التشغيل "ME".

في هذا البرنامج ، أعلنا عن متغير عام text1 وبدأنا بقيمة. لقد أعلنا عن نفس المتغير مرة أخرى ، ولكن تم إنشاء مثيل له بقيمة مختلفة. داخل العملية ، نكتب هذا المتغير باستخدام عامل التشغيل "ME" للحصول على القيمة التي تم البدء بها مسبقًا. نحصل على القيمة المتغيرة بالتصريح مباشرة.

مثال

Report ZMEOperator1. 
CLASS class1 Definition.
   PUBLIC Section. 
	
Data text1 Type char25 Value 'This is CLASS Attribute'.
   Methods method1. 
ENDCLASS. 

CLASS class1 Implementation.
   Method method1. 
	
Data text1 Type char25 Value 'This is METHOD Attribute'.
   Write: / MEtext1,
          / text1.
   ENDMethod.
ENDCLASS. 

Start-Of-Selection.
   Data objectx Type Ref To class1.
   Create Object objectx.
   CALL Method objectxmethod1.

ينتج الكود أعلاه الناتج التالي -

This is CLASS Attribute 
This is METHOD Attribute

التسميات: