ما هو المنشئ؟ .. المنشئ .. وأنواعه

ما هو البناء؟

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

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

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

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

اعلان

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

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

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

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

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

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

أنواع المنشئ

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

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

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

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

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

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

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

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

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

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

  • المُنشئ الافتراضي نظرًا لأن مترجم Java يُدرج مُنشئًا افتراضيًا في الكود الافتراضي الخاص ، فلن يتم العثور عليه في الكود المصدري لأنه سيتم تضمينه في الكود عند تجميعه وسيكون موجودًا في ملف الفئة.
  • منشئ دون جدال لا يحتوي هذا المُنشئ على أي وسيطات ويمكن أن يحتوي النص على أي رمز بخلاف المُنشئ الافتراضي الذي يكون جسمه المنشئ فارغًا.[5]
  • مُنشئ ذو معلمات يحتوي على معلمتين id واسم ، لذلك عند إنشاء obj1 و obj2 ، يتعين عليك تمرير وسيطين لاستدعاء هذا المُنشئ بعد إنشاء obj1 و obj2.

.

اعلان
شارك مقالة مع أصدقائك

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *