ماهو الكونستركتر .. Constructor.. وأنواعة


ما هو المنشئ

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

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

ما هو منشئ في بيثون

المُنشئ هو شرح طريقة يتم استدعاؤها عند إنشاء كائن. يتم تعريف هذه الشرح طريقة في فئة معينة ويمكن استخدامها لتهيئة المتغيرات الأساسية. إذا قام المستخدم بإنشاء أربعة كائنات، فسيتم استدعاء مُنشئ الفئة أربع مرات، حيث يكون لكل فئة مُنشئها الخاص. في كل مرة يتم فيها إنشاء كائن، يتم استدعاء شرح طريقة، وتعرف هذه الشرح طريقة باسم المُنشئ، ويتم إنشاؤها باستخدام شرح طريقة init وتكتب في الكلمة الأساسية للموضوع التي تشير إلى نفسها، أي “كائن”. هذه العملية هي على النحو التالي

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

شرح المنشئات بلغة c ++

أهم شيء يمكن التفكير فيه عند إنشاء فئة جديدة في لغة البرمجة C ++ هو العمل على تسهيل شرح طريقة إنشاء الكائنات من هذه الفئة، ومن هذه النقطة تم إطلاق فكرة المنشئ، وهي وظيفة، يتم استدعاء هذه الوظيفة عند إنشاء المُنشئ كائن من فئة يعطي قيمة أولية للخصائص الموجودة فيه.

من الجدير بالذكر أن أي فئة تحددها لها مُنشئ افتراضي خاص بها حتى لو لم تحددها، لأنه لا يمكن أبدًا إنشاء أي كائن من الفئة إلا من خلال مُنشئ هذه الفئة، لذا اعلم أن مترجم C ++ سوف إنشاء مُنشئ افتراضي فارغ في حالة عدم تحديد الفئة بواسطة المُنشئ الخاص بها، ووجود بعض الجمل المهمة المتعلقة بالمنشئ بلغة C ++، فإنها تنعكس في

  • كل فئة في C ++ لها مُنشئ خاص بها، حيث أن كل فئة لها مُنشئ واحد على الأقل، وإذا لم يتم تعريفها باستخدام مُنشئ خاص، فسيعطي مترجم هذه اللغة الفئة مُنشئًا افتراضيًا.
  • في كل مرة يتم فيها إنشاء كائن جديد من فئة، يجب استدعاء مُنشئ من الفئة حتى يتم إنشاء الكائن.
  • هناك قاعدة أساسية تقضي بضرورة إنشاء كائن وهي أن المُنشئ يجب أن يكون له نفس اسم الفئة وأن يكون نوعه عامًا.
  • إذا تم تعريف المُنشئ، فلن يقوم مترجم c ++ بإنشاء مُنشئ افتراضي.
  • يمكن للمبرمج تحديد أكثر من مُنشئ واحد، ومن الممكن أيضًا إنشاء مُنشئ واحد فارغ، واستخدام المُنشئ الفارغ إذا لم يتم إعطاء قيم أولية للخصائص عند إنشاء الكائن.

يتم استدعاء المُنشئ في لغة البرمجة C ++ بتمرير قيمة لكل معلمة فيها عن طريق وضع أقواس بعد اسم الكائن ويتم تمرير القيم فيه.

أنواع المنشئ

هناك عدة أنواع من المنشئات في لغة البرمجة C ++، وهي

  1. المُنشئ الافتراضي
  2. منشئ ذو معلمات
  3. منشئ النسخ
  4. منشئ ثابت
  5. منشئ خاص

سنناقش كل نوع من هذه الأنواع على حدة، وهي تنعكس في

المُنشئ الافتراضي لأنه لا يأخذ أي معلمة ويقوم مترجم C # بإنشاء مُنشئ افتراضي إذا لم يتم تحديد مُنشئ افتراضي داخل الفئة، يمكننا أيضًا تحديد المُنشئ الافتراضي عن طريق كتابة بعض التعليمات البرمجية، وسوف نوضح هذا النوع بالمثال التالي

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

المُنشئ المعلّم – تم إنشاؤه بواسطة المطور وهذا النوع من المُنشئ يأخذ معلمة واحدة على الأقل.

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

– المُنشئ الثابت Static Constructor هو المُنشئ الذي يستخدم لتهيئة الأعضاء الثابتة حيث يمكنه الوصول إلى الأعضاء غير الساكنين، ويتم تنفيذه بواسطة Static، ولا يمكننا تحديد وقت تنفيذ هذا المُنشئ ولا يتم تنفيذه بواسطة كائن فئة.

يتم استخدام المُنشئ الخاص لتقييد فئة ما ليتم إنشاء مثيل لها وتوريثها، ويتم استخدام المُنشئ الخاص عندما تحتوي الفئة على أعضاء ثابتة فقط.

أنواع المنشئات في لغة Java هي

  • المُنشئ الافتراضي نظرًا لأن مترجم Java يُدرج مُنشئًا افتراضيًا في الكود الخاص افتراضيًا، فلن يتم العثور عليه في الكود المصدري لأنه سيتم تضمينه في الكود أثناء التجميع ويكون في ملف الفئة.
  • المُنشئ no-arg هو مُنشئ بلا وسيطة ويمكن أن يحتوي على أي كود بخلاف المُنشئ الافتراضي الذي يكون جسمه فارغًا.
  • مُنشئ ذو معلمات بمعرف واسم المعلمة، عند إنشاء obj1 و obj2، يجب عليك تمرير وسيطتين حتى يتم استدعاء المُنشئ بعد إنشاء obj1 و obj2.
Scroll to Top