الآن أفضل طريقة للتعلم هي مشاهدة التعليمات البرمجية قيد التنفيذ.
لذا من الناحية النظرية ، دعونا في الواقع نبرمج صفنا الخاص.
سأقوم بحذف كل شيء والبدء من نقطة الصفر.
ودعونا نقول أننا نعمل لصالح شركة ألعاب ، وشركة الألعاب هذه لديها ، حسنًا ، لعبة المعالج
التي يريدون إنشاءها ، تقريبًا مثل هاري بوتر.
الآن ، كيف يمكننا التفكير في البرمجة الشيئية؟
حسنًا ، أول شيء نحتاجه هو أن يكون لدينا لاعبون.
الصحيح.
كل لاعب لديه شخصية يحتاجون للعبها.
لذلك دعونا ننشئ فصلًا هنا ونسميه لاعبًا.
حرف.
ثانية.
لاحظ اصطلاح التسمية لأنه فئة.
و.
قاعدة أخرى هي أنك تريد عادةً أن تكون المفرد وليس الجمع.
لذلك لا يمكنك قول شخصيات اللاعب لأنني أعني ، إنها مخطط.
من هذا المخطط ، سنقوم بإنشاء العديد من الشخصيات ، لكن هذه ستكون كائنات.
لذا شخصية اللاعب ، مفردة في المفرد.
الآن هنا ، سأفعل بعض الأشياء وسأحذرك ، سيبدو هذا مربكًا في البداية
، لكن تحملني.
سأشرح ذلك.
سنقوم بتحديد شرطة سفلية ، وتسطير أسفل السطر فيها.
تسطير سفلي ، تسطير أسفل السطر.
الآن هنا ، سنقول الذات.
ثم أعطها اسما.
اسم الشخصية.
من هنا ، سنقوم بعمل كولين مرة أخرى.
وببساطة قل اسم النقطة الذاتية.
يساوي الاسم.
يا ولد.
ماذا حدث هنا للتو؟
مرة أخرى ، سأمتنع عن شرح ما يفعله هذا وأكتب بضعة سطور أخرى من التعليمات البرمجية بحيث يكون
الأمر أكثر منطقية.
سأكتب طريقة أخرى هنا وسأحدد ، دعنا نقول ، طريقة تشغيل يمكن لكل لاعب تشغيلها.
وهنا سأحصل مرة أخرى على هذا الجناح الذاتي الغريب ثم ببساطة داخل هنا ، قل طباعة.
يجري.
حسنًا ، لقد قمت للتو بإنشاء هذا الفصل.
لا يزال الأمر محيرًا نوعًا ما.
نحن لا نعرف حقًا ما هو هذا ، ما هي الذات ، وهذا المظهر الجديد تمامًا.
لكن دعنا نتجاهل ذلك لثانية ونقول ببساطة.
لاعب.
سيساوي المرء شخصية اللاعب ويؤدي إلى إنشاء مثيل لهذا اللاعب.
لهذا السبب.
يمكننا طباعة المشغل ومعرفة ما يحدث مع هذا المشغل.
إذا قمت بالنقر فوق تشغيل.
حسنًا ، أحصل على هواء.
إنه نوع الهواء.
تقول أنها تفتقد اسم وسيطة موضعية مطلوبة.
حسنا.
لنأخذ استراحة هنا ونرى ما يحدث هنا.
هل ترى هذا ، أليس كذلك؟
الطريقة هي طريقة خاصة.
ترى اثنين من التسطير هنا.
وهذا ما يسمى طريقة الغطس أو الطريقة السحرية.
وسيكون لدينا مقطع فيديو خاص بهذا الموضوع.
ولكن عندما نبني فصلًا دراسيًا ، فعادة ما ترى هذا في الأعلى.
وهذا ما يسمى غالبًا طريقة الباني أو طريقة init.
ويتم استدعاء هذا تلقائيًا في أي وقت نقوم فيه بإنشاء مثيل.
تذكر أن التأسيس يعني أننا نستدعي الفصل لإنشاء كائن.
لذلك عندما أقوم بذلك ، سيتم تشغيل كل ما هو موجود في كتلة التعليمات البرمجية هذه تلقائيًا.
لذلك عندما أقوم بتشغيل هذا ، ترى أنني أتلقى الخطأ التاسع هنا ، عبر الإنترنت.
تسع.
وعندما أحاول تجسيد شخصية اللاعب.
إنه يجري فيه ثم يحاول أن يفعل نفسه.
الاسم يساوي الاسم.
لكن المشكلة هي أنني لا أعطيها اسمًا للحجة.
وذلك لأننا عندما ندعوها ، فإننا نقبل كل ما هو بعد الذات كمعامل.
اسم.
لذلك نحن بحاجة إلى إعطائها اسمًا لهذه الشخصية.
لنفترض أن الاسم هو سيندي.
إذا قمت بالنقر فوق تشغيل هنا.
حسنا.
يبدو أن لدي شخصية لاعب.
وفي واقع الأمر ، فإنه يوضح لي أنه كائن في موقع الذاكرة هذا.
لذلك على أجهزة الكمبيوتر لدينا ، هذا هو المكان الذي يوجد فيه لاعب شخصية اللاعب الأول الآن.
رائع جدا.
ولكن ما هي هذه الكلمة الأساسية الذاتية وما هو هذا الرمز عبر الإنترنت؟
هذه طريقة لتعريفنا.
حسنًا ، تشير الذات إلى شخصية اللاعب.
إنه يقول ، مرحبًا ، هذا سيشير إلى شخصية اللاعب هذه أننا سننشئ
لاعبًا واحدًا وأريد أن يساوي اسم النقطة الذاتية أيًا كان اسم المعلمة.
لذلك إذا قمت بعمل اسم نقطة للاعب هنا وقمت بالنقر فوق تشغيل.
أحصل على سيندي.
ولماذا هي سيندي؟
حسنًا ، لأنني أعطيته شخصية لاعب المعلمة.
وعندما قمت بعمل مثيل له ، قمت بتمرير معلمة الاسم.
المعلمة الافتراضية هي self عندما أقوم بداخلها وفي الفئات ، ترى هنا أن المعلمة الافتراضية
هي المعلمة الأولى دائمًا عندما نحدد طريقة هي self.
والآن أعطي اسمًا لاسم النقطة الذاتية.
ماذا لو قمت بإزالة هذا هنا وقمت بالنقر فوق تشغيل؟
ترى أنه يقول الكائن ليس له اسم سمة.
لأنه لكي أقول ، مرحبًا ، أريد أن يكون للاعب اسم ، يجب أن أقول نقطة ذاتية.
لأن الذات تشير إلى اللاعب الأول.
لذلك إذا كنت تتذكر عندما كانت لدينا قائمة ، كان علينا عمل نقطة ثم نقول إلحاق.
حسنًا ، كتب أحدهم رمز الإلحاق هذا وفي الكود الملحق سيقول نقطة ذاتية.
لنفترض إضافة إلى القائمة والنفس تشير إلى أي شيء على يسار النقطة.
وبهذه الطريقة يمكننا الحصول على مرجع لشيء لم يتم إنشاؤه بعد في هذه الحالة.
اللاعب الأول وأخبرهم بذلك ، عندما يتم إنشاؤه ، عندما نقوم بإنشاء مثيل
، فأنا أريدك أن تتأكد من أن اللاعب لديه سمة الاسم هذه حتى إذا قمت بإنشاء لاعب آخر ولاعب آخر ، فسيكون توم
هو اللاعب الثاني.
إذا قمت بطباعة اسم المشغل وقمت بالنقر فوق تشغيل.
لدي لاعبان مختلفان باسمين مختلفين.
لقد تمكنت من استخدام نفس الجزء من الكود ولكن لدي قيم مختلفة لأن الذات ، في كل مرة أقوم فيها بإنشاء
مثيل ، يشير هذا إلى أول مرة لاعب واحد ، ثم للمرة الثانية لاعب ثاني.
الآن الذات هي واحدة من تلك الأشياء التي يصعب فهمها حقًا.
وقد تحتاج إلى مشاهدة هذا الفيديو عدة مرات ، لكن المفتاح هنا يجب أن يكون واضحًا لك.
أي أنني قادر على كتابة الكود مرة واحدة فقط.
تذكر محركنا الأساسي؟
لا تكرر ما قلته أو فعلته سابقا.
وأنا قادر على جعله ديناميكيًا بقول أن البيانات التي سننشئها للكائن ستكون
ديناميكية وستتغير بناءً على ما نقدمه.
حتى أتمكن من إنشاء لاعبين مختلفين بصفات مختلفة.
لكن ما زلت تستخدم نفس الرمز.
الآن يمكنني الحصول على أشياء متعددة هنا.
يمكنني الحصول على H على سبيل المثال ، ومرة أخرى يمكنني القول بأن النفس h تساوي H ، وبعد ذلك سيتعين على Cindy
المرور ، دعنا نقول 44 و Thomas 21.
لذلك هذا هنا مرة أخرى ، إذا كنت أتقدم في العمر.
سيكون لديهم سمات مختلفة.
لذلك تذكر أن هذه هي السمات أو الخصائص التي تمتلكها هذه الكائنات ، ويمكنك الوصول إليها عن طريق القيام
بالتدوين النقطي ثم الوصول إلى الخاصية نفسها.
ترى أنه ليس لدي أي أقواس هنا لأنها ليست طريقة ، ولا تتخذ إجراءً.
إنه ببساطة يقول ، مرحبًا ، أريد الوصول إلى هذه السمة.
إذا قمت بنقطة هنا ، فسيخبرني المحرر الخاص بي بالفعل وسيكون لدينا رمز ، مهلاً ، لديك حق الوصول
إلى السمة والعمر والاسم.
وفي واقع الأمر ، لدي أيضًا إمكانية الوصول لتشغيل الطريقة بحيث إذا قمت بالنقر فوق تشغيل.
حسنًا ، تذكر ، الجري هو طريقة.
لذلك حصلت على هذه الطريقة المقيدة ، لكنها لا تطبع أي شيء ، ولا تتخذ الإجراء.
لذا علينا إضافة الأقواس مرة أخرى.
اضرب ، اهرب.
وانظر إلى ذلك.
أنا قادر على الجري.
ثم لا أحصل على شيء.
ثم 21.
لماذا نحصل على هذا؟
لا أحد؟
لأن تذكر ، هذه وظيفة لا تعيد أي شيء.
عندما لا تعيد الدالة أي شيء ، ما الذي نحصل عليه؟
لا نحصل على شيء.
لذلك ربما يمكنني أن أقول فقط تم العودة.
إذا قمت بالنقر فوق تشغيل.
ها أنت ذا.
لقد قمنا بتشغيل عملنا 21.
الآن ، شيء أخير قبل أن أنهي هذا الفيديو.
الشيء المثير للاهتمام هنا هو إذا قمت بعمل لاعب واحد.
ثم أقوم بطباعة هذا المشغل الثاني ثم انقر فوق تشغيل.
سترى أنني حصلت على شخصية اللاعب.
لكن كل كائن من هذه الكائنات ، اللاعب الأول واللاعب الثاني في موقع ذاكرة مختلف.
لذلك أنا قادر على استخدام جزء واحد من التعليمات البرمجية ، ومخطط واحد لإنشاء لاعبين متعددين.
لكن هؤلاء اللاعبين ليسوا متماثلين.
لقد تم إنشاؤها من نفس المخطط ، لكنهم يعيشون في أماكن مختلفة في الذاكرة.
وهذا منطقي ، أليس كذلك؟
لا نريد أن يكون توم وسيندي نفس اللاعب.
إنهما لاعبان مختلفان.
وبهذه الطريقة يمكننا الحفاظ على الأشياء آمنة.
وأي شيء أقوم بإضافته إلى اللاعب الثاني ، على سبيل المثال ، لنفترض أن اللاعب الثاني يمكنه الآن الهجوم.
والهجوم سيكون مجرد خاصية ستكون 50.
الآن ، إذا لم أهاجم هنا ، فسترى أن اللاعب الثاني لديه.
هجوم.
لكن إذا لعبت أو أردت الهجوم.
سأحصل على هواء.
الكائن ليس له سمة.
هجوم.
أتمنى أن تبدأ في رؤية قوة الطبقات.
على الرغم من أنه قد يكون من الصعب فهمه في البداية.
تصبح القوة واضحة عندما نكون قادرين على إنشاء هذا المخطط الذي يمكننا الآن استخدامه
مرارًا وتكرارًا لإنشاء كائنات خاصة بنا.
دعنا نستكشف المزيد في الفيديو التالي.