للإطلاع على الدروس السابقة :
- أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الأول – تمهيد )
- أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثاني – Classes)
- أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث – الـ Objects)
- أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الرابع – الـ Access Modifiers)
– ما هو الـ Constructors :
الـ Constructor هو دالة يتم تضمينها داخل الكلاس، تحمل هذه الدالة نفس إسم الكلاس الموجودة بداخله، تلقائيا و بشكل إفتراضي، يتم تحديد Constructor من طرف الكلاس حتى و إن لم تقم بكتابته، و يُسمى بالـ Default Constructor، و يعتبر الـ Constructor من أساسيات الـ OOP و تجسيداتها، و يساعدنا بالتعامل بشكل أكثر إحترافية مع الـ Object حين يتم إنشائها .
أنواع الـ Constructors :
كما سبق الذكر، فإنه يوجد أنواع من الـ Constructors لكل نوع وظيفة و حدث معين حين يشتغل، من أهم هذه الانواع يوجد :
* الـ Default Constructor : وهو الـ Constructor الرئيسي او الأساسي او الإفتراضي، يمكنك إما تحديده، او سيتم تحديده إفتراضيا دون كتابته، لكن يفضل ان تحدده بنفسك فإن تطلب منك تعديل بعض الخواص فيه سيكون أسهل، في الغالب يكون هذا الـ Constructor فارغا في حالة لم تريد إنشاء اي تعديل او تحديث حين يتم إنشاء الـ Object .
* الـ Parametrized Constructor : و هو نوع من الـ Constructor يتضمن مجموعة من المدخلات على شكل Parameters، في الغالب تكون هذه المدخلات هي الـ Attributes الخاصة بالكلاس ( كما شرحنا سابقا في درس ما هو الكلاس ) .
يوجد أنواع أخرى من الـ Constructors مثل الـ Static Constructor و Copy Constructor، لكن في الوقت الراهن سنكتفي فقط بهذين النوعين لأنهما الأكثر إستخداما و سنحتاجهما في الدروس القادمة .
– كيفية إنشاء Constructor و أساسيات إنشائه :
قبل إنشاء الـ Constructor، إليك أولا هذه النقاط الأساسية التي يجب عليك معرفتها :
يتم إنشاء الـ Constructor في الكلاس الخاصة بنا ( في هذه الحالة سنستعين بكلاس Computer التي إشتغلنا عليها سابقا )، و يجب أن يكون إسم الـ Constructor مشابه تماما لإسم الكلاس سواء في الـ Default او الـ Parametrized، يمكن إنشاء الإثنين معا في نفس الكلاس، سيتم التعرف على كل واحد منهما أثناء الإستخدام عن طريق عملية الـ Overloading ( سنعود لها لاحقا في الدروس القادمة )، الـ Constructor شبيه بالـ Methode لكن لا يتم تحديد نوعه قبلا ( اي String او Void ) .
هذا مثال بسيط لإدراج الـ Constructor في الكلاس الخاصة بنا :
– شرح الـ Default Constructor :
– شرح الـ Paramerized Constructor :
على عكس الـ Default Const، فإن الـ Parametrized يتطلب إضافة مجموعة من الـ Parameters في الـ Constructor، يتم التفرقة بين كل منهما عن طريق الـ Overloading، حين نقوم بصناعة Object دون تمرير أي قيم فتلقائيا يأخذ الـ Default Constructor، في حالة إدراج قيم معينة، فيتم تهيئة الـ Parametrized Constructor، يتم تمرير القيم في أثناء صناعة الـ Object بالشكل التالي :
لفعل ذلك، سنستعين بخاصية this، تسمح لنا this بتحديد القيمة التابعة للكلاس، بحيث اخبره ان يأخذ متغير هذا الكلاس اي this.id، ثم يأخذ القيمة القادمة من خلال الـ Parameter و هي id .
يمكنك ان تجعل أسماء المتغيرات مختلفة إن اردت، لكن سيتطلب منك دائما إستخدام this حين تريد إستخدام احد المتغيرات او Attributes داخل الكلاس وسط Method في الكلاس أيضا، غير هذا قد يُظهر لك خطأ في الكود البرمجي .
إذن إلى هنا ننهي معك درسنا الخاص بالـ Constructor، أتمنى ان يكون هذا الدرس مفهوم و جيد، في حالة توفر أي سؤال، نحن نفتح أبوابنا في التعليقات لنجيبك دائما .

التعليقات 0
شاركنا رأيك أو استفسارك حول الموضوع