﻿1
00:00:04,490 --> 00:00:05,690
‫أهلا ومرحبا.

2
00:00:05,690 --> 00:00:11,630
‫في هذه المحاضرة ، سنتعلم عن الوظائف التي لا تعيش في مخطط المستوى

3
00:00:11,630 --> 00:00:14,300
‫، ولكن في فصل دراسي معين.

4
00:00:14,300 --> 00:00:20,120
‫هذه تسمى وظائف الأعضاء وهي حاسمة للغاية للبرمجة الموجهة للكائنات.

5
00:00:20,120 --> 00:00:22,700
‫دعونا نتعمق ونرى كيف تعمل.

6
00:00:23,150 --> 00:00:31,430
‫لذلك في وظيفة إطلاق القذيفة ، في مخطط المستوى ، لدينا حمولة من العقد هنا تتعلق بإضافة الدافع ، والحصول

7
00:00:31,430 --> 00:00:36,830
‫على اتجاه النبضة ، والحصول على مكون الشبكة الثابتة.

8
00:00:36,920 --> 00:00:43,610
‫تستخدم كل هذه العقد مثيل قذيفة BP في العمق.

9
00:00:43,610 --> 00:00:50,690
‫ألن يكون رائعًا إذا تمكنا من أخذ كل هذا الرمز ونقله إلى قذيفة BP بحيث يعيش الكود

10
00:00:50,690 --> 00:00:55,130
‫الذي يتعامل مع تلك البيانات مع البيانات نفسها؟

11
00:00:55,280 --> 00:00:59,300
‫حسنًا ، هذه هي النقطة الكاملة في البرمجة الشيئية.

12
00:00:59,300 --> 00:01:07,040
‫لذلك يمكننا تعريف البرمجة الموجهة بالكائنات كوظائف تتعايش مع البيانات التي تتعامل معها.

13
00:01:07,400 --> 00:01:09,080
‫فكيف يعمل هذا؟

14
00:01:09,080 --> 00:01:13,520
‫كيف يمكننا عمل وظائف في حالات معينة من الأشياء؟

15
00:01:13,940 --> 00:01:20,420
‫حسنًا ، إحدى الطرق التي يمكننا من خلالها القيام بذلك ستنتقل إلى فتح فئة مقذوفات BP الخاصة

16
00:01:20,420 --> 00:01:27,020
‫بنا والتأكد من النقر فوق فتح محرر مخطط كامل هو أنه يمكنك أن ترى أنه في محرر المخطط الكامل هذا

17
00:01:27,020 --> 00:01:35,810
‫، يوجد جزء المخطط الخاص بي وقسم الوظيفة لذلك نحن يمكن أن تضغط على سهم الجمع هنا لإنشاء وظيفة جديدة في فئة مشروع BP.

18
00:01:35,810 --> 00:01:41,960
‫وسأقوم بتسمية هذه الوظيفة ، وطباعة اسمك وطباعة اسمك.

19
00:01:41,960 --> 00:01:44,150
‫الوظيفة يجب أن تفعل ذلك بالضبط.

20
00:01:44,570 --> 00:01:49,910
‫يمكنك أن ترى أن لدينا عقدة تبدأ في تنفيذ هذه الوظيفة حتى نتمكن من سحب دبوس التنفيذ

21
00:01:49,910 --> 00:01:52,460
‫الخاص بها وكتابة سلسلة الطباعة.

22
00:01:52,460 --> 00:01:53,810
‫لذلك سيتم طباعة ذلك.

23
00:01:53,810 --> 00:01:54,380
‫مرحبًا.

24
00:01:54,380 --> 00:01:57,200
‫ليس بالضبط اسم هذه الوظيفة ، أليس كذلك؟

25
00:01:57,200 --> 00:01:59,390
‫لكننا سنقوم بفرز ذلك في ثانية فقط.

26
00:01:59,690 --> 00:02:04,130
‫إذن ما لدينا هنا يُعرف بدالة العضو.

27
00:02:04,130 --> 00:02:12,020
‫وظيفة العضو هي وظيفة في فئة يتم استدعاؤها دائمًا في حالة معينة من الفصل.

28
00:02:12,020 --> 00:02:18,320
‫لذلك لا تقول ، سأقوم بالاتصال بطباعة اسمك على جميع مقذوفات BP.

29
00:02:18,320 --> 00:02:25,010
‫عليك أن تقول ، أريد الاتصال ، اطبع اسمك على قذيفة BP رقم واحد ، أو قذيفة BP التي

30
00:02:25,010 --> 00:02:26,720
‫تم إنتاجها للتو.

31
00:02:26,720 --> 00:02:36,650
‫لذلك إذا انتقلنا إلى مخطط المستوى الخاص بنا ، فما عليك فعله هو أخذ المرجع الذي

32
00:02:36,650 --> 00:02:38,780
‫خرج من قذيفة BP.

33
00:02:39,020 --> 00:02:48,050
‫ومن هذا المرجع ، يمكنك استدعاء طباعة اسمك ويمكنك رؤيته يتصل تلقائيًا

34
00:02:48,050 --> 00:02:51,920
‫بعقدة إدخال خاصة تسمى الهدف.

35
00:02:51,920 --> 00:02:54,410
‫ومن الواضح أنه يجب عليك ربط دبابيس التنفيذ أيضًا.

36
00:02:54,410 --> 00:02:58,580
‫سأقوم بتوصيله ليحدث بعد الدافع الإعلاني.

37
00:02:58,580 --> 00:03:07,370
‫لكن المثير للاهتمام حول عقدة الإدخال المستهدفة الخاصة هذه هو أنك إذا انتقلت إلى قذيفة BP ، فسترى

38
00:03:07,370 --> 00:03:08,750
‫تلك الطباعة.

39
00:03:08,750 --> 00:03:12,830
‫لا يحتوي اسمك على مثل هذه العقدة.

40
00:03:12,830 --> 00:03:14,750
‫إذن ما الذي يحدث هنا؟

41
00:03:14,990 --> 00:03:24,230
‫حسنًا ، ضمنيًا ، تحتوي أي وظيفة عضو على معلمة هي هدفها الحالي أو المثيل الحالي.

42
00:03:24,560 --> 00:03:32,030
‫ويمكنك الحصول على هذا عن طريق النقر بزر الماوس الأيمن في الرسم البياني لحدث المخطط وكتابة الذات.

43
00:03:32,390 --> 00:03:37,910
‫ويمكنك أن ترى أن هناك عقدة تسمى الحصول على مرجع للذات وتقوم فقط بإنشاء عقدة ذاتية

44
00:03:37,910 --> 00:03:38,540
‫مثل هذه.

45
00:03:38,540 --> 00:03:46,370
‫وبعد ذلك يمكنك استخدام مرجع الكائن الذاتي هذا للحصول على أي من الخصائص الموجودة في هذا الكائن المحدد.

46
00:03:46,370 --> 00:03:53,270
‫لذلك إذا أردنا الحصول على اسم قذيفة BP الخاصة بنا ، فيمكنك سحب المرجع الذاتي

47
00:03:53,270 --> 00:03:57,110
‫وكتابة اسم العرض ، وهو ما فعلناه من قبل.

48
00:03:57,110 --> 00:04:01,250
‫وبعد ذلك يمكنك ربط اسم العرض بسلسلة الطباعة الخاصة بنا.

49
00:04:01,250 --> 00:04:09,890
‫الآن عندما نلعب ونطلق قذيفة جديدة ، يمكنك أن ترى أنها تطبع اسم المقذوف ويمكنك أن

50
00:04:10,310 --> 00:04:17,210
‫ترى لكل قذيفة جديدة أقوم بإنشائها ، الاسم مختلف لأن الذات التي

51
00:04:17,210 --> 00:04:23,750
‫يشير إليها العضو الوظيفة هي نفس مختلفة هي قذيفة مختلفة.

52
00:04:23,750 --> 00:04:32,390
‫لذلك تعلمنا أن self هي عقدة متاحة داخل وظائف الأعضاء التي تشير دائمًا إلى المثيل الحالي

53
00:04:32,390 --> 00:04:35,270
‫المحدد الذي نستخدمه.

54
00:04:35,270 --> 00:04:40,190
‫لذا فإن الهدف الكامل من النظر إلى وظائف الأعضاء في المقام الأول ، والسبب في

55
00:04:40,190 --> 00:04:45,680
‫بدءنا كان بسبب هذه العقد في مخطط المستوى ، حيث نحصل على الشبكة الثابتة ، نحصل على المتجه

56
00:04:45,680 --> 00:04:48,260
‫الأمامي ثم نضيف دفعة إلى هذه.

57
00:04:48,560 --> 00:04:51,860
‫هذه تبدو وكأنها يجب أن تعيش على قذيفة BP.

58
00:04:51,860 --> 00:04:55,310
‫وهذا ما أود أن أتحداك أن تفعله.

59
00:04:55,310 --> 00:04:58,730
‫إذن هذا يمثل نوعًا من التحدي المتطور ، لكننا نقترب من نهاية القسم.

60
00:04:58,730 --> 00:05:01,730
‫لذلك سوف آخذك خطوة بخطوة.

61
00:05:02,120 --> 00:05:03,950
‫لذلك سنقوم بعمل وظيفة الإطلاق.

62
00:05:04,060 --> 00:05:05,800
‫شين على قذيفة BP.

63
00:05:05,800 --> 00:05:07,810
‫لذا قم بإنشائه على قذيفة BP.

64
00:05:07,810 --> 00:05:08,890
‫اذهب إلى زر الإضافة.

65
00:05:08,890 --> 00:05:11,080
‫أضف واحدة جديدة ، سمها ، ابدأ.

66
00:05:11,440 --> 00:05:18,700
‫ثم قم بقص العقد ولصقها من مخطط المستوى في هذه الوظيفة التي تم إنشاؤها حديثًا لك وتأكد

67
00:05:18,700 --> 00:05:22,090
‫من ربط دبابيس التنفيذ وما إلى ذلك.

68
00:05:22,510 --> 00:05:28,000
‫ستحاول الآن وتجميع هذا الذي لم نقم به كثيرًا في المخططات ، لكن التجميع يسمح

69
00:05:28,000 --> 00:05:34,390
‫لك بشكل أساسي بالتدقيق الإملائي في التعليمات البرمجية والتأكد من عدم وجود أي أخطاء يمكن

70
00:05:34,390 --> 00:05:36,850
‫لمترجم Blueprint توقعها.

71
00:05:36,850 --> 00:05:43,660
‫لذا فإن الطريقة التي تفعل بها هذا هي أن تذهب إلى الزر في أعلى اليسار وتضغط على compile وإذا كان هناك أي

72
00:05:43,660 --> 00:05:48,580
‫أخطاء ، فستظهر في الجزء السفلي في الجزء الصغير الذي يسمى نتائج المترجم.

73
00:05:48,580 --> 00:05:53,530
‫يمكنك أن ترى أنني حصلت على ترجمة ناجحة ، لكن أي أخطاء ستظهر هنا وأحيانًا ستحصل على

74
00:05:53,530 --> 00:05:57,250
‫القليل من اللون الأحمر على عقدة للإشارة إلى مكان الخطأ.

75
00:05:57,790 --> 00:06:03,730
‫وأود معرفة ما إذا كان بإمكانك محاولة فهم ما يقوله هذا الخطأ ومحاولة إصلاحه باستخدام

76
00:06:03,730 --> 00:06:07,480
‫العقدة الذاتية الجديدة التي تعلمنا عنها.

77
00:06:07,930 --> 00:06:15,850
‫وبعد ذلك تحتاج إلى المضي قدمًا واستدعاء هذه الوظيفة من مخطط المستوى عن طريق سحب المثيل

78
00:06:15,850 --> 00:06:18,130
‫كما فعلنا مع طباعتنا.

79
00:06:18,130 --> 00:06:24,760
‫تقوم العقدة الذاتية بسحب مثيل المقذوف الجديد الذي تم إنشاؤه من عقدة الولادة واستدعاء وظيفة

80
00:06:24,760 --> 00:06:25,960
‫الإطلاق.

81
00:06:26,200 --> 00:06:28,360
‫أوقف الفيديو واذهب.

82
00:06:31,400 --> 00:06:32,000
‫تمام.

83
00:06:32,000 --> 00:06:32,890
‫مرحبًا بعودتك.

84
00:06:32,900 --> 00:06:39,320
‫لذلك سأنتقل إلى قذيفة BP الخاصة بنا ، واضغط على زر الإضافة بجوار الوظائف

85
00:06:39,320 --> 00:06:47,090
‫في جزء مخططي واكتب التشغيل لتسمية الوظيفة التي دعنا نعود إلى مخطط المستوى لدينا

86
00:06:47,090 --> 00:06:51,740
‫، ونقطع العقد ونذهب إلى قذيفة BP ولصقها في.

87
00:06:52,010 --> 00:06:58,550
‫الآن عليّ أن أقوم بالتنفيذ من الإطلاق لإضافة الدافع والآن سأقوم بالضغط والتجميع

88
00:06:58,550 --> 00:07:04,850
‫وترى أني أحصل على خطأ في الشبكة الثابتة أو أحصل على عقدة شبكية ثابتة.

89
00:07:05,060 --> 00:07:10,550
‫وإذا نظرت في نتائج المترجم ، فستجد أنه يستخدم هدفًا غير صالح.

90
00:07:10,700 --> 00:07:15,290
‫لذا فإن الهدف من هذا الإدخال هنا غير صحيح.

91
00:07:15,290 --> 00:07:25,040
‫الآن كما أوصيت بذلك ، يمكنك النقر بزر الماوس الأيمن والكتابة الذاتية للحصول على إشارة إلى الذات ثم إدخال تلك

92
00:07:25,520 --> 00:07:28,460
‫الذات في الهدف بدلاً من ذلك.

93
00:07:28,730 --> 00:07:34,490
‫الآن إذا قمت بالضغط على التحويل البرمجي مرة أخرى ، يمكنك رؤية الخطأ قد اختفى

94
00:07:34,490 --> 00:07:43,550
‫وتم تجميعه بنجاح لأن ما يحدث هو أنه قادر الآن على الحصول على مكون الشبكة الثابتة من المقذوف الحالي الذي يتم استدعاء

95
00:07:43,550 --> 00:07:46,010
‫وظيفة الإطلاق هذه.

96
00:07:46,490 --> 00:07:56,060
‫لذلك إذا عدنا إلى مخطط المستوى الخاص بنا الآن ، فيمكننا أخذ دبوس الإخراج من ممثل التفرخ لدينا ويمكننا كتابة Launch

97
00:07:56,060 --> 00:07:59,930
‫لاستدعاء وظيفة الإطلاق الخاصة بنا.

98
00:07:59,930 --> 00:08:06,080
‫يمكنك أن ترى أن دبوس التنفيذ قد تم توصيله تلقائيًا لي ثم خرج بعد وظيفة التشغيل ، يمكننا

99
00:08:06,080 --> 00:08:12,500
‫توصيل وظيفة طباعة اسمك إذا أردنا ذلك ، على الرغم من أن ذلك كان مخصصًا فقط لأغراض التصحيح

100
00:08:12,500 --> 00:08:18,560
‫والتوضيح وإذا قمت باختباره ، يمكن أن نرى أنه لا يزال يتم إطلاقه بنجاح.

101
00:08:18,590 --> 00:08:24,620
‫ما عدا الآن الكود الذي يتعامل مع إطلاق الحياة على القذيفة نفسها.

102
00:08:24,620 --> 00:08:25,250
‫أشياء عظيمة.

103
00:08:25,250 --> 00:08:30,980
‫لقد تعلمنا عن أحد المفاهيم الأساسية للبرمجة الموجهة للكائنات في وظائف عضو المحاضرة هذه.

104
00:08:30,980 --> 00:08:32,780
‫سأراك في المرة القادمة.

