‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنتعلم عن الوظائف التي لا تعيش في مخطط المستوى
‫، ولكن في فصل دراسي معين.
‫هذه تسمى وظائف الأعضاء وهي حاسمة للغاية للبرمجة الموجهة للكائنات.
‫دعونا نتعمق ونرى كيف تعمل.
‫لذلك في وظيفة إطلاق القذيفة ، في مخطط المستوى ، لدينا حمولة من العقد هنا تتعلق بإضافة الدافع ، والحصول
‫على اتجاه النبضة ، والحصول على مكون الشبكة الثابتة.
‫تستخدم كل هذه العقد مثيل قذيفة BP في العمق.
‫ألن يكون رائعًا إذا تمكنا من أخذ كل هذا الرمز ونقله إلى قذيفة BP بحيث يعيش الكود
‫الذي يتعامل مع تلك البيانات مع البيانات نفسها؟
‫حسنًا ، هذه هي النقطة الكاملة في البرمجة الشيئية.
‫لذلك يمكننا تعريف البرمجة الموجهة بالكائنات كوظائف تتعايش مع البيانات التي تتعامل معها.
‫فكيف يعمل هذا؟
‫كيف يمكننا عمل وظائف في حالات معينة من الأشياء؟
‫حسنًا ، إحدى الطرق التي يمكننا من خلالها القيام بذلك ستنتقل إلى فتح فئة مقذوفات BP الخاصة
‫بنا والتأكد من النقر فوق فتح محرر مخطط كامل هو أنه يمكنك أن ترى أنه في محرر المخطط الكامل هذا
‫، يوجد جزء المخطط الخاص بي وقسم الوظيفة لذلك نحن يمكن أن تضغط على سهم الجمع هنا لإنشاء وظيفة جديدة في فئة مشروع BP.
‫وسأقوم بتسمية هذه الوظيفة ، وطباعة اسمك وطباعة اسمك.
‫الوظيفة يجب أن تفعل ذلك بالضبط.
‫يمكنك أن ترى أن لدينا عقدة تبدأ في تنفيذ هذه الوظيفة حتى نتمكن من سحب دبوس التنفيذ
‫الخاص بها وكتابة سلسلة الطباعة.
‫لذلك سيتم طباعة ذلك.
‫مرحبًا.
‫ليس بالضبط اسم هذه الوظيفة ، أليس كذلك؟
‫لكننا سنقوم بفرز ذلك في ثانية فقط.
‫إذن ما لدينا هنا يُعرف بدالة العضو.
‫وظيفة العضو هي وظيفة في فئة يتم استدعاؤها دائمًا في حالة معينة من الفصل.
‫لذلك لا تقول ، سأقوم بالاتصال بطباعة اسمك على جميع مقذوفات BP.
‫عليك أن تقول ، أريد الاتصال ، اطبع اسمك على قذيفة BP رقم واحد ، أو قذيفة BP التي
‫تم إنتاجها للتو.
‫لذلك إذا انتقلنا إلى مخطط المستوى الخاص بنا ، فما عليك فعله هو أخذ المرجع الذي
‫خرج من قذيفة BP.
‫ومن هذا المرجع ، يمكنك استدعاء طباعة اسمك ويمكنك رؤيته يتصل تلقائيًا
‫بعقدة إدخال خاصة تسمى الهدف.
‫ومن الواضح أنه يجب عليك ربط دبابيس التنفيذ أيضًا.
‫سأقوم بتوصيله ليحدث بعد الدافع الإعلاني.
‫لكن المثير للاهتمام حول عقدة الإدخال المستهدفة الخاصة هذه هو أنك إذا انتقلت إلى قذيفة BP ، فسترى
‫تلك الطباعة.
‫لا يحتوي اسمك على مثل هذه العقدة.
‫إذن ما الذي يحدث هنا؟
‫حسنًا ، ضمنيًا ، تحتوي أي وظيفة عضو على معلمة هي هدفها الحالي أو المثيل الحالي.
‫ويمكنك الحصول على هذا عن طريق النقر بزر الماوس الأيمن في الرسم البياني لحدث المخطط وكتابة الذات.
‫ويمكنك أن ترى أن هناك عقدة تسمى الحصول على مرجع للذات وتقوم فقط بإنشاء عقدة ذاتية
‫مثل هذه.
‫وبعد ذلك يمكنك استخدام مرجع الكائن الذاتي هذا للحصول على أي من الخصائص الموجودة في هذا الكائن المحدد.
‫لذلك إذا أردنا الحصول على اسم قذيفة BP الخاصة بنا ، فيمكنك سحب المرجع الذاتي
‫وكتابة اسم العرض ، وهو ما فعلناه من قبل.
‫وبعد ذلك يمكنك ربط اسم العرض بسلسلة الطباعة الخاصة بنا.
‫الآن عندما نلعب ونطلق قذيفة جديدة ، يمكنك أن ترى أنها تطبع اسم المقذوف ويمكنك أن
‫ترى لكل قذيفة جديدة أقوم بإنشائها ، الاسم مختلف لأن الذات التي
‫يشير إليها العضو الوظيفة هي نفس مختلفة هي قذيفة مختلفة.
‫لذلك تعلمنا أن self هي عقدة متاحة داخل وظائف الأعضاء التي تشير دائمًا إلى المثيل الحالي
‫المحدد الذي نستخدمه.
‫لذا فإن الهدف الكامل من النظر إلى وظائف الأعضاء في المقام الأول ، والسبب في
‫بدءنا كان بسبب هذه العقد في مخطط المستوى ، حيث نحصل على الشبكة الثابتة ، نحصل على المتجه
‫الأمامي ثم نضيف دفعة إلى هذه.
‫هذه تبدو وكأنها يجب أن تعيش على قذيفة BP.
‫وهذا ما أود أن أتحداك أن تفعله.
‫إذن هذا يمثل نوعًا من التحدي المتطور ، لكننا نقترب من نهاية القسم.
‫لذلك سوف آخذك خطوة بخطوة.
‫لذلك سنقوم بعمل وظيفة الإطلاق.
‫شين على قذيفة BP.
‫لذا قم بإنشائه على قذيفة BP.
‫اذهب إلى زر الإضافة.
‫أضف واحدة جديدة ، سمها ، ابدأ.
‫ثم قم بقص العقد ولصقها من مخطط المستوى في هذه الوظيفة التي تم إنشاؤها حديثًا لك وتأكد
‫من ربط دبابيس التنفيذ وما إلى ذلك.
‫ستحاول الآن وتجميع هذا الذي لم نقم به كثيرًا في المخططات ، لكن التجميع يسمح
‫لك بشكل أساسي بالتدقيق الإملائي في التعليمات البرمجية والتأكد من عدم وجود أي أخطاء يمكن
‫لمترجم Blueprint توقعها.
‫لذا فإن الطريقة التي تفعل بها هذا هي أن تذهب إلى الزر في أعلى اليسار وتضغط على compile وإذا كان هناك أي
‫أخطاء ، فستظهر في الجزء السفلي في الجزء الصغير الذي يسمى نتائج المترجم.
‫يمكنك أن ترى أنني حصلت على ترجمة ناجحة ، لكن أي أخطاء ستظهر هنا وأحيانًا ستحصل على
‫القليل من اللون الأحمر على عقدة للإشارة إلى مكان الخطأ.
‫وأود معرفة ما إذا كان بإمكانك محاولة فهم ما يقوله هذا الخطأ ومحاولة إصلاحه باستخدام
‫العقدة الذاتية الجديدة التي تعلمنا عنها.
‫وبعد ذلك تحتاج إلى المضي قدمًا واستدعاء هذه الوظيفة من مخطط المستوى عن طريق سحب المثيل
‫كما فعلنا مع طباعتنا.
‫تقوم العقدة الذاتية بسحب مثيل المقذوف الجديد الذي تم إنشاؤه من عقدة الولادة واستدعاء وظيفة
‫الإطلاق.
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك سأنتقل إلى قذيفة BP الخاصة بنا ، واضغط على زر الإضافة بجوار الوظائف
‫في جزء مخططي واكتب التشغيل لتسمية الوظيفة التي دعنا نعود إلى مخطط المستوى لدينا
‫، ونقطع العقد ونذهب إلى قذيفة BP ولصقها في.
‫الآن عليّ أن أقوم بالتنفيذ من الإطلاق لإضافة الدافع والآن سأقوم بالضغط والتجميع
‫وترى أني أحصل على خطأ في الشبكة الثابتة أو أحصل على عقدة شبكية ثابتة.
‫وإذا نظرت في نتائج المترجم ، فستجد أنه يستخدم هدفًا غير صالح.
‫لذا فإن الهدف من هذا الإدخال هنا غير صحيح.
‫الآن كما أوصيت بذلك ، يمكنك النقر بزر الماوس الأيمن والكتابة الذاتية للحصول على إشارة إلى الذات ثم إدخال تلك
‫الذات في الهدف بدلاً من ذلك.
‫الآن إذا قمت بالضغط على التحويل البرمجي مرة أخرى ، يمكنك رؤية الخطأ قد اختفى
‫وتم تجميعه بنجاح لأن ما يحدث هو أنه قادر الآن على الحصول على مكون الشبكة الثابتة من المقذوف الحالي الذي يتم استدعاء
‫وظيفة الإطلاق هذه.
‫لذلك إذا عدنا إلى مخطط المستوى الخاص بنا الآن ، فيمكننا أخذ دبوس الإخراج من ممثل التفرخ لدينا ويمكننا كتابة Launch
‫لاستدعاء وظيفة الإطلاق الخاصة بنا.
‫يمكنك أن ترى أن دبوس التنفيذ قد تم توصيله تلقائيًا لي ثم خرج بعد وظيفة التشغيل ، يمكننا
‫توصيل وظيفة طباعة اسمك إذا أردنا ذلك ، على الرغم من أن ذلك كان مخصصًا فقط لأغراض التصحيح
‫والتوضيح وإذا قمت باختباره ، يمكن أن نرى أنه لا يزال يتم إطلاقه بنجاح.
‫ما عدا الآن الكود الذي يتعامل مع إطلاق الحياة على القذيفة نفسها.
‫أشياء عظيمة.
‫لقد تعلمنا عن أحد المفاهيم الأساسية للبرمجة الموجهة للكائنات في وظائف عضو المحاضرة هذه.
‫سأراك في المرة القادمة.