طيب السلام عليكم اليوم ان شاء الله يا جماعة هنبدأ
في موضوع جديد اللي هو بحكي عن ال object oriented
programming او
برمزول باختصار OAP
انتبهوا معاياالـ Object Oriental Programming لمطة
جديدة من تصميم البرامج مش معناه ان احنا هناخد اشي
جديد ما مش علاقة باللي قبله لأ اكيد ان كل اللي
اخدناها قبل هيك اساسيات البرامجة هنستخدمها لازم ..
لازم نستخدمها في البرامج لكن طريقة بناء البرامج
وتركيبها الان هيكون في نقلة نوعية او اختلاف نوعى
فعشانك احنا بنركز على المفهوم هذا ال object
oriented programming و نفهمه كويس قبل ما نبدأ
المرمج لإن الواحد لو ماكانش فاهمه مش هيعرف ليش
بعمل ايه و مش هيتعلمه صحيح و طبعا مفهوم ال object
oriented programming هذا مفهوم موجود في كل لغة
البرمجة الحديثةيعني إذا أنا شرحته في ال python
ممكن واحد لو أشتغل بعد ذلك على أي لغة برمجة تانية
زي PHP أو Java أو غيره يلاقي الموضوع هذا سهل عليه
طبعا فضروري نفهمه كويس على أساس نقدر نطبقه بشكل
صحيح طيب أول حاجة رغبة المشكلة يعني إيش المشكلة
الموجودة اللي دعتنا أننا هنتعلم موضوع جديد أو
طريقة جديدة للبرمجة احنا في البرامج تبتنا تعلمنا
كيف نتعامل مع بياناتالبيانات اللى بتتعامل معها
البرنامج بتتخزن وين؟ في variables صح؟ طب لما
بتتعامل مع مجموعة بيانات بنلاقي ان ال variable
ماله بكفيش فلجأنا انه لما .. حاجة بتجمعلي مجموعة
من ال variables زى ال list و ال set و ال tuple صح
ولا؟ بعدين اتقدمنا شوية لجينا انه أحيانا في بعض
البرامج بدي أربط مجموعتين من البياناتمثلا اسم
الشخص ورقمه ورقم الشخص وعلامته فلجأنا لباقة ال
search section الجديد اللي هو ال directory اللي هو
ممكن يشبهه بعبارة عن two lists مزجين في بعض صح
بقاله؟ طب هل هذا اللي أخدمها كافي فعلا؟ لأ مش كافي
طب خليني أشوف مثال وين ممكن نلاقي أن كل اللي
أخدمها هذا لا يكفي ان يلبي احتياجات البرا مش تاتي
خلينا ناخد مثلا برنامج او بيئة زي بيئة الجامعة،
بيئة الجامعة هذه مكونة من طلبة، مكونة من مدرسين،
مكونة من موظفين إداريين، بيئة كبيرة جدا، كل واحد
من هدول الأشخاص له مجموعة كتيرة من البيانات، يعني
مثلا الطالب الواحدبياناته لحالها كتيرة جدا طالب
الواحد مش بس .. يعني احنا الطول .. و الطول و احنا
بنجرب كنا نتعامل مع الطالب انه اسم صح؟ او رقم؟ او
علامة؟ لكن فعلا الطالب عبارة عن اسم و عبارة عن رقم
و عبارة عن عنوان و عبارة عن مكان سكن و عبارة عن
تخصص و عبارة عن اي ثمة دراسية و ايش المواد اللي
مسجلها و ايش علاماته في الموادصح و لا؟ و ايش
المواد اللى خلصها و ده ديش ضل عشان يتخرج؟ كل هذه
معلومات اللى علاقة ب .. و صورة الطالب و غيره
بيانات كتيرة جدا اللى علاقة بطالب واحد طبعا؟ طيب
.. هذا بس الطالب يعني الطالب الواحد خدنا نتخيل كيف
احنا ممكن نعبر عن بيانات الطالب ب code بال Python
يعني مثلا الاسم بده stringصح ولا؟ العلامات مش
علامة واحدة عندى مجموعة علامات كتير لكل المواد صح
ولا؟ كيف ممكن اعبر عنها العلامات؟ list of integers
مثلا طيب هلاجى مشكلة في list of integers انا مش
هعرف كل علامة تبع لأى مادة صح ولا؟ تم ممتازى هلجأ
لدكشمري لإن دكشمري في اسم المادةو علامتها صح ولا
طبعا هلاجي صعوبات اكتر من هيك يعني مش بالبساطة اسم
المادة و علامتها لأن ممكن الطالب مثلا أخذ المادة و
عادها مرة تانية فصارله علامتين صح ولا في البرنامج
اللي بيحفظه العلامة القديمة و العلامة الجديدة ما
علينا خلينا الآن افترض نخزن العلامات باسم ال
dictionary اسم المادة و علامتها خلصنا هيك اه لأ
التخصص طبعا الطالب بدنا stringأي سنة موجودة هو
فيها بدنا string ايش الخطة اللى ماشية عليها بدنا
integer او string تمام كلها بيانات كتير خاصة في
الطالب الطالب الواحد طب تخيل ان انا عندي تلاتين
الف طالب تمام تلاتين الف طالب طالبة الجامعة مثلا
كل واحد فيه داخله ايش بدى تلاتين اربعينVariable صح
هذا ما بين String ل Integer ل List ل Dictionary
انتوا متخيلين الحجم الضخم لل data و ال variables
اللي لازم يكون عندي تمام؟ عندي تلاتين الف طالب هذا
معناه ان انا بدي أنشق String عشان أخزن اسم تلاتين
الف و بدي أنشق تلاتين الف dictionary عشان أخزن
أسماء المواد و علامات الطلابوبدي اخزن تلاتين الف
رقم عشان اخزن رقم خطط الطالب و تلاتين الف value
عشان اخزن ايش تخصصه .. وكده .. لسه هذا ما خلصناش
.. هذا كله لمن؟ للطالب .. لبيانات الطالب .. طب
بيانات الموظفين؟تقريبا الى نفس التعقيد او اقل شويه
كل موظف الى ايش السنة اللى دخله ايش راتبه ايش
تسلسل الإدارى صح و لا و ال history تبقى و وين كان
و وين راح و الكلام هذا كله شهاداته ومعلوماته كلها
فهندخل برضه ايش في دوابة تانية وعدد كبير جدا من ال
variables و المتغيرات اللى لازم نتعامل معاها فى
البرنامج الان اذا كنت بتعمل البرنامج ازاي هيك
هتعجبصح هنشي عدد كبير من ال variable من هنا نشأ
مفهوم يسحل علي ويرتب علي الموضوع هذا اسمه object
oriented programming مش هنفسر لسه ايش معنى object
oriented programming هنخل التفسير يجي لحاله من
خلال الأمثلة اللي هترحى الآن يعني احنا اللي هناخده
فادة و الحل المشكلة بتعقيد التعامل مع عداد هائلة
من البيانات و العلاقات ما بين البيانات هذهطيب، إيش
ال object الرياضية هيسويلي؟ إيش هيعمل؟ خلينا ناخد
مثال بسيط جدا، لأن كل أسرة أو كل بيتفي مجموعة
أوراق، صحيح ولا؟ كل شخص في البيت عبارة عن مجموعة
من الأوراق، شهادته في ابتدائية، شهادته في العتدية،
شهادته في السنوية، صحيح ولا؟ شهادته في الجامعة،
شهادة توظيفه، ممكن شهادة وفاته، صحيح ولا؟ شهادة
ميلاد، يعني معلومات إيش؟ كتيرة جدا للشخص الواحد،
هوويته، جوازه وغيره وغيره وغيره، تمام؟طب الأسرة
اللي فيها 15 نفر كل واحد إله إيش كبشة وراج بعض بعض
لإن إحنا إيه كب بالفترة لما نيجي نرتب الحاجات إيش
بنعمل؟ هل بنكوم كل وراجها على بعض و بنحطهم في مكان
واحد و يلا روح ندور على جواز فلان أنقش كل الوراج
اللي موجودة ده عشان نطلع جواز من بين خمسمية وراجة؟
لأ بنروح نرتب الشغل إيش بنعمل؟ بنعمل profiles
ملفات طبعا بنقول والله سو سو أي ملفةمحمد هاي ملفه
تمام؟ و بنجمع كل وراجه اللي مع بعض و بنحطها في
الملف و كل وراج محمد بنحطهم في ملف تاني هذا هي رقم
الشغل بعدك بدأت أطلع وراج محمد إيش بعمل بفتح ملفه
بلاقي أوراقه أحيانا بالزمن كمان ملفات محمد نفسها
أحط جواتها إيش ملف داخل صح ولا مش بتلاقي مرات
files بتفتحي بتلاقي ملفات جواب يعني مثلا محمد له
ملفات كتير
الدرجات خلّيهم لحالي صح؟ شهادات المدارس كلها
خلّيها لحالي صح ولا؟ على أساس إيش؟ لأن برضه لما
أروح أدور في أوراق الشخص الواحد أوصل ل .. اللي
بدّيها مباشرة أروح لل .. لل sub file اللي موجود في
ال file تمام؟ نفس الفكرة هذه هي موجودة في ال
object oriented programming تمام؟ هي عبارة عن
restructuringللعيكالية البيانات بحيث انه يسيل
الوصول إليها و التعامل إليها سهل تمام هذا الفايد
الأساسي يعني احنا فعليا هروح مثلا مثلا بيانات
الطالب الواحد بدل ما نعمله تلاتين variable أو
أربعين variable ما بين string و integer و list و
dictionary عشان أخزن بياناته كلها بدي أجمع كل
بيانات الطالب في ملف واحدزي في البيت مثلا خلفنا
واحد جديد، ماشي بنعمل؟ بروح نفتحله ملف جديد عشان
نحطله شهادة الميلاد في الأول، صح ولا؟ وكل ما تجي
شهادة، بنصير نحطها في ملفه، فبنصير الطالب ككل
نفتحله ملف جديد، حاجة واحدة بتعبر عن أيش؟ عن كل
بياناته، بصير بعد هيك مثلا بدي بيانات الفلان
الفلان، بروح باخد ملفه كله أيه، أي شخص عبارة عن
الملف هذا، تمام؟هذا المثال انا طرحته مش بس في
موضوع طلاب الجامعة، لأ حتى مثلا في الحياة، انا بدا
اعمل برنامج ال supermarket، مثال بسيط جدا، ال
supermarket عبارة عن items، الحاجات اللي بتنبعها،
صح ولا؟ وكل item عبارة عن مجموعة من المعلوماتصح؟
ال item نفسه اسم ال item، نوعه، تصنيفه، في أي غرف
موجود، سعره، تاريخ إنتاجه، تاريخ صلاحيته، صح ولا؟
هذه كلها أمور متعلقة بس ب .. ب item واحد، و ال ..
و ال supermarket فيه items مئات، اللي ماكانش ألف،
كل واحد له مجموعة .. مجموعة بانا
معنى ان اجمع بيانات الشيء الواحد في file احنا في
حياة بنسميه ملف لكن في البرمجة بيسميه object كلمة
object الترجمة الحرفية اللي لها بالانجليزي يعني
شيء كلمة object يعني شيء احنا في البرمجة هنعمل ال
object عشان يمثل بيانات شيء معينالمتوقع بالكلام
اللي انا حكيته والامثل اللي طرحتها ان ال object
هيحتوي جوا على ايش؟ على مجموعة بيانات، صح ولا؟
يعني ال object اللي بيمثل طالب واحد بيحتوي على
اسمه، رقمه، علاماته، مواده وغيره وغيره وغيره،
تمام؟ ال object هذا بيمثل بيانات طالب واحدالان
الميزة هي ان هذا بصير ان اتعامل مع الطالب وكأنه
ايش وكأنه object مش هروح الملم تلاتين الف حاجة
عشان اجيب بيانات الطالب لأ بقول ان هذا ال object
يمثل الطالب الأول S1 مثلا طبعا كل طالب بده انشئله
ايش object بيمثله زي ما احنا كل نفسر في البيت
بنشئله ملف كل طالب بنشئلهالميزة الأن بدل ما أتعامل
مع الشئ المباطرة بأتعامل مع الطالب كله كإيش؟ ك
object يعني انا لو بدي مثلا أخزن بيانات كل طلاب
الجامعة في list بعمل list بخزن فيها objects تمام؟
هيك صار التعامل مع الطلاب سهل إنهم كلهم موجودين في
list واحدةطبعا إذا أنا interested في طالب واحد
بدخل جوا ال list هذه و بجيب ال object تاع الطالب و
منه بجيب معلوماته زي بالظبط الأشخاص في البيت كل
واحد إله file تمام؟ في النهاية بجمع كل الملفات
مثلا في شنطة صح ولا؟ الآن يبجي هذه الشنطة أنا
بتعاملش مع أوراق مفرفطة لأ بتعامل إن فيها عشر
ملفاتطبعا بدي مثلا بيانات شخص معين بروح في الأول
بجيب ملفه من ال list و لما أطلع الملف بدور على
البيانات اللي بديها من داخل الملف طبعا فصار
التعامل سهل بتعامل أنا في الأول مع ال upper level
طبعا و بعدين بنزل لل bottom level upper level
معناه أنا بتعامل في الأول مع ملفات بشكل عام طبعا
أني أشوف عشر ملفات أسهل ما أفتح الشمس
فهذا أسهل علي ان اشوف البيانات بعد ذلك لما اشوف
العشر ملفات واطلع واحد منهم بفتح الملف و بقوم فيه
زي ما بدي بشوف فيه تلاتين اربعين وراجل بس في
التعامل بكون أسهل عليه في الأول في ال top level
بشوف عشرة و بختار اللي بديها منهم و لما أخد واحد
منهم بفتحه و بعوم في الحاجات اللي موجودة فيه لكن
تخيل مافيش filesكلها عبارة عن ورد مفرفض و مكمّم مع
بعضه صعب جدا ان اوصل البيانات اللى بديها فباختصار
شديد ال object oriented programming object
oriented ايش يعني اول ترجمتها الحرفية بترجمها
البرمجة الشيئية يعني البرمجة المعتمدة على الأشياء
البرمجة المعتمدة على الأشياء او المتجهة لاستخدام
الأشياءالهدف منها انك تجمع المعلومات الصغيرة كشيء
بنسميه طبعا احنا في الحياة بنسميه file لكن في
الكمبيوتر بنسميهاش file بنسميهاش object تمام؟
وبصير انا اتعامل مع ال objects تمام؟ على أساس ان
التعامل معها أسهل من التعامل مع البيانات الصغيرة
تمام؟ طيب هذا الكلام اللي اطلحته لسه كلام نظري
تمام؟ مهم جدا على أساس يبينلي اقناني ايش فايدةأو
مفهوم الـ object oriented programming لسه طبعا هذه
فائدة واحدة من فوائد ال object oriented
programming فى فائد تانى أخرى نتطلقلها بالتسلسل
خدنا نفهم الفائدة هذه و بعدين ننتقل لفوائد أخرى
نفس الكلام اللى حكيته بنجي الأن نطبق عليه مثال
عملي تمام؟ و ناخد مثلا المثال بتاع طلبة أو بيانات
طلاب الجامعة
مدارس أو جامعة تمام؟ وبدأجي أفكر طبعا البرنامج
يعني إيش لازم يعمل لازم مثلا يحتفظ في بيانات
الطلبة لازم أقدر أبحث عن بيانات الطلبة أشوف
علاماتهم زي البرامج ال .. برامج التسجيل في الجامعة
أو برامج مثلا ال .. المدارس مش الناس ممكن تدخل على
ال .. ال .. ال internet و تشوف علامات أطفالها مثلا
تمام؟ هذا نفس الفكرة فالفكرة أن البرنامج تبقى لازم
يحتفظبيانات الطلبة أو كل معلوماتهم ويمكننا أن
نسترجعها في أي موقت طيب خلينا نشوف مثال الان لما
اتعامل مع اي طالب انا بقول البرنامج بتعامل مع طلاب
ايش انا بتعامل مع طلاب يعني لازم يخزن بيانات
الطلاب عشان اقرأها او اتعامل معاه طيب خلينا نفكر
ايش بيانات الطلاب الأساسية في مثلا بدعم الانتجر او
بدعم المتغير اسمه IDطبعا هذا لإيش ال ID عشان أخذ
الرقم الطالب ممكن يكون فيه كمان مش بس name بدأ
أخليها first name طبعا وفيه كمان أنا ماكتبش لسه
code python قاعدين احنا نحصر إيش ال variables اللي
بلزمها لطالب طبعا وفي عندي last name وممكن أجدها
أكتر و أقول middle name أو ثلاثي أو رباعيتمام؟ وفي
مثلا عندنا string بتكون major يعني التخصص بتاع
الطالب تمام؟ ال courses تمام؟ اللي .. اللي ماخدها
ممكن أعبّر عنها مثلا ب list of courses تمام؟ و
بيانات يعني أكتر يعني مثلا الخطة لأ رقم الخطة اللي
هو ماشي عليها ال plan معدل التراكم مثلا ال GTAهذه
كلها معلومات خاصة بالطالب و في عنوانه ال address
email mobile number طيب
طبعا هذه البيانات خاصة بالطالب واحد كل الطلاب يكون
عندهم نفس البيانات هذهصح؟ انت متخيلين ان جدش هيكون
الموضوع مهقد لو انا بدى اتعامل مع تلاتين الف طالب؟
طب كيف نسحل العملية هذه؟ بقول لما دام انا عندي شيء
اللي بيانات متعددة تمام؟ بدك تعبر عن الشيء هذا
كحاجة اسمها object تمام؟ يعني بدنا نروح عشان ننشئ
حاجة اسمها object قبلها بدنا ننشئ حاجة اسمها class
هنحكي عشان ال class ال
class هذا يا جماعة عبارة عن مخطط لشكل ال object و
تركيبه مرة تانية مخطط لشكل ال object و تركيبه
الموضوع هذا زي ما قلنا صعب شويه في البداية بس
بعدين ان شاء الله يصير سهل ال class عبارة عن مخطط
لشكل ال object و تركيبه ال object هو تنفيذ لل
classالـ object هو تنفيذ لل class كيف يعني الكلام
هذا؟ لأن في فرق كبير في الحياة ما بين العمارة
وخلطة العمارة صح ولا لأ؟ الخلطة العمارة عبارة عن
ورقة بس بتوضح تفاصيل إنشاء العمارة لكن العمارة
نفسها عبارة عن شيء موجود مبنى موجود صح ولا لأ؟ لكن
هذا مش معناه إن العمارة مهمة و الخلطة مش مهمة
العمولة تم إنشائها بناء على خريطة، الآن على أول
خطوة لما نعمل ملفات للأشخاص اللي عندنا في البيت،
بدنا نتفج أن كيف يكون شكل الملفيعني مثلا احنا بنجي
نجهد ونقول عشان اغطي بوراجم يا جماعة ومانعيشش حياة
فوضوية بدنا نجيب ملف ونقسمها إجزاء وبدنا في الملف
تبع الشخص الواحد بد يكون فيه جزء فايل داخلي في
الملف نفسه خاص مثلا بشهادات الأبتدائيين وفايل تاني
بشهادات الأعدادية وفايل تاني بشهادات الثانوية فايل
بشهادات .. شهادات .. يعني احنا بنتفقعلى تركيب
الملف قبل استخدامه و نقعد نحط و نحط و نحط و نحط و
نحط و نحط و نحط و نحط و نحط و نحط و نحط و نحط و
نحط و نحط و نحط و نحط و نحط و نحط و نحط و
نهذا اسمه مخطط الملف، لسه احنا ملفناش، بعد ما اتفق
كيف شكل الملف و اشلر و حجمه و ايش بيكون فيه، بروح
نجيب نعمل ملفات بنفس النظام هذا، تمام؟
طبقها المثال هذا على نفس اللي بنحكيه لان لأن أنا
قبل ما أنشأ object بدي أعبر عن بيانات الطالب بدي
أحدد كيف شكل ال object تحديد شكل ال object عن طريق
إنشاء حاجة اسمها class طبعا؟ طيب أنا الآن هذه كلها
بيانات الطالب بدي أروح في الأول أكتب .. أفتح ملف
جديد و أكتب كلمة class إيش بدي أسميها class؟ بدي
أسميها student و بكتب نقطتينأنا كإن هنا جاعدين
نتفق إنه نعمل ملف .. إيش بنسمي الملف هذا؟ طبعا
بنسميه student لأن الملف هذا هيعبّر عن إيش؟ عن ال
student، عن بيانات الطالب، يعني إحنا لما ننشأ ال
class بنسميها باسم بعبّر عن وظيفتها أو محتوها،
تمام؟ أنا لسه ما أنشأتش student، أنا جاعد بحدد شكل
الملف تاع ال student طيب الان يا جماعة اشوف ايش
بده اعمل جوا .. جوا ال class قولنا اول بيان .. اول
حاجة كتبتها في بيانات الطالب هي ال ID رقم الطالب
طبعا اللي بده يكون مثلا نتعامل معاه ك string اللي
هو طويل شوية بنتعامل معاه ك string طيب عشان نتعامل
مع رقم الطالب بنده نعمله two methods two functions
طبعا يعني بدي اجي في ال class هنا و اعمل defمش
هنعمل function نكتب def تمام؟ وبنحط في ال def هذي
هذي اسمها set ID
عملت حاجة اسمها setid تمام؟ و اجيت فتحت ال course
مش احنا دايما نعمل function و نكتب course تمام؟
لحاله كتبلي حاجة غريبة اسمها ايش هي ايش ايش self
ايش ال self هذا لسه بنعرفش ايش معناها تمام؟
طيب ال setid من اسمها ايش موظفتها؟ انهاتاخد ID
للطالب طبعا؟ طب خليني بس عشان أوصل المعلومة بس
بشكل أفضل
هذه ال class كام function فيها؟ تنتين واحدة اسمها
setid واحدة اسمها getid تمام ال setid هذه بتاخد
حاجتين مش هدول عبارة عن ال parameters اللي بتاخدهم
ال function اللي هم اسمهم حاجة اسمها self هنتكلم
علىها كمان شوية و حاجة اسمها id تمام ال function
التاني اسمها getid برضه بتاخد ايش؟ بتاخد حاجة
اسمها self ال code اللي هناخلّيني اصلا شويه لإن
احنا ماشرحناش مفهوم السلف و زي هدولة بدروح أعمل
two methods تانين اسمهم set name و
get name
طيب، إيش فيه جوا ال functions؟ مالكوش فيه الآن،
تمام؟ لكن أنا اللي بدي أفهمه إنه عن طريق ال class
ال student هذه بدي أحدد للطالب نوعين من البيانات
إيش هما ال ID و ال name ال set ID وظيفتها إني أعطي
للطالب ID ال get ID وظيفتها إني أقرأ ال ID تبع
الطالبلسه انسوا الآن السلف هرجعك تبقى نفهم ان ال
set id معناه اني اعطي للطالب ID جيت ID اني اقرأ ال
ID تاعة الطالب set name اني اعطي للطالب name جيت
name اني اقرأ ال name تاعة الطالب طيب هذه كلها ايش
بنسميها؟ احنا ال code اللي كتبناها هذا class
بنسميه لإيش؟ لأن هذا كله ال code اللي هنا يا جماعة
واضح لأن هناك indentation هنا إنه موجود داخل حاجة
اسمها class اسمها ال class هذه student طيب الآن
بدي أجي أعمل ملف python جديد غير الملف اللي فيه
class تمام؟ نسميه مثلا test2
عشان أقدر أستخدم ال class student هي موجودة وين
class student؟ في مجلد تاني انا بدي أعملها import
from test import student
طيب شوفوا الأن إيش بدنا نسويه بدنا نشيط طالب طبعا
بدنا إيجي طالب عندى في الجامعة وبدنا نعبر عنه
object زي ما بنعمل أي variableاعملوا أي variable
بأي اسم انا ايش سميت ال variable S1 يساوي ايش اسم
ال class اللي عندي انا student بكتب كلمة student
زيك و بحط قسيك
طيب
شوفوا ايش صار عندما اكتب السطر هذا
أحنا يا جماعة لما ننشق list ايش كنا نعمل؟ كنا نحط
اسم ال list يساوي و نحط قصين زيك صح؟ لما نحط قصين
زيك هو لحاله بيفهم انه بيدور على الذاكرة و يحجز
مكان مكان فاضي صح؟ لو بيصير عربي الآن أنا فعليا
لما كتلوش list زيك كتبتله اسم متغير X و بدل ما
كتبتله كلمة إيشكلمة student و كتبت القصين هذا
معناه
انه بدى يروح ينشئ object من نوع student طب اش
هينشئ object من نوع student زى كأنه يبنشئ عمارة
بناء على خريطة العمارة الآن عشان يقدر ينشئ ال S1
هذا بدى يروح لمين لل classالكلاص هي اللى بتحدد شكل
ال object اللى مجاور اللى بده يبني عمارة بده يطلع
على خاليط العمارة ويعمل زيها .. تمام؟ لأن البرنامج
تبعي مايعرفش إيش يعني ال student .. من أين بده
يتعلم أو يعرف إيش يعني ال student؟ من أين بده
يعرف؟ من الملف اللى معرف فيه ال student .. وين
الملف اللى معرف فيه ال student؟ الملف هذاتمام؟
الملف هذا بتعامل مع كم من البيانات؟ مع حاشتين اللي
هم ال ID و ال name شوفوا إيش بعمله هو بروح الذاكرة
بحجز مكان في الذاكرة تمام؟
في كام حاجة في حاشتين اللي هم هذه و هذا ال ID و
هذا إيشوهذا المكان كله يوجد مؤشر عليه اسمه S1 S1
يسمى student معناه يذهب الذاكرة .. الذاكرة شغل رام
تحت الجهاز ينشأ مكان في الذاكرة يكافئ أو يمثل
تركيب مين؟تركيب ال class ال class ايش بتقوللي ان
هي بتتعامل مع نوعين من ال بيانات اللي هم من ال ID
و ال name فبروح في ال class و بنشغل فيها مكانين
فاضين و واحد خاص بتخزين ال ID و واحد تاني خاص
بتخزين ال name و في مكانين تانين او اربع مكان
تانين اللي هم فيهم اسام ال methods اللي هم set ID
و get IDو set name و
get name هذا كله انشأه فقط لما كتبت كلمة ايش
student و حطيت قصين زي هيك و كأن انا روحت انشأت
ملف خاص بشخص عندى فى البيت كامل و حطته فى الشنطة
الملف لسه ماله فاضح مافيش فيه حاجة لكن فيه اماكن
فارقةوكل مكان مخصص لشيء معايا انتوا يا جماعة؟ طيب
نرجع
تاني على المثال هذا طبعا احنا انشأنا object خاص
بال student اعطلاله بيانات؟ لأ ماعطلوهوش بيانات
لسه ملف فاضي الاصل انا ليش عملت الملف؟ عشان اعبي
كلمة يا ربي بيجي ال S1 دلنا ال S1 عبارة عن إيش يا
جماعة؟ مؤشر بيأشر على المكان الكل في الذاكرة اللي
موجود فيه بيه؟ ال ID و ال name و مين هدولة؟ ال
functions اللي موجودين وين في ال class طيب S1 لو
أنا ضغط dotلو انا ضغطت dot عليها هلاجي في عندي
method او function اسمها set name ايش فايدية هال
set name حكينا قبل شوية؟ ايش فايدية ال set name؟
فايدية ال set name انها تاخد اسم و تحط وين؟ في
المكان هذا يعني انا ماعلي اللي اقوله set name و
احطله اسم ايش؟ أحمد
وبعدين بدي احطله ID طيب ايش بعمل بقول S1.6ID
وبعطيله الرقم اللي انا بديه يعني انا الآن يا جماعة
في ال code تبعي باختصار او مجبل اللي انا عملته
احنا يا جماعة بدي نتعامل مع بيانات طلبة بيانات
طلبة كتيرة روحنا في الأول اعملنا او حددنا هيكلية
باينات الطالب ككل الهيكلية هذه اتحددت في ملف اسمه
class بالظبط تمام ال class هي اللي انا حددت فيها
ان ملف الطالب عبارة عن ID on and وفي أربع methods
واحدة اسمها set ID و set name لإدخال البيانات
وواحدة اسمها get name و get ID لإخراج البيانات
قرأتها من الملفهذا هي كلية بيانات الطالب، هل أنا
أنشأت بيانات الطالب؟ لأ، هذا هي كلية أنا لسه ما
استخدمتهاش، ومستخدمها من البرنامج، تمام؟ لما روح
البرنامج تبعي، اجيت بالطلاب، أسوا واحد يساوي
student، وحطيت قصين، هنا راح أنشأ objectمن ال
class انتبهوا للمصطلحات لما أقول له يساوي student
أنشأ object من ال class زي كان هو أنشأ من عمارة
بناء على مخطط العمارة، بناء على عيكالية العمارة،
تمام؟ فعليا البيانات و لا بتكون خزنة في ال class
ولا في ال object بناء على كلام الحكيته في ال
objectهل الناس عايشين في خريطة العمارة؟ لأ،
الخريطة عيكالية بس، بتوضح كيف بناء العمارة، لكن
الناس هتعيش في العمارة اللي اندلت على الخريطة، وها
كذا العلاقة ما بين ال object والتلاظر علاقة ما بين
العمارة وخريطة العمارةال object شئ موجود فعليا
موجود في الذاكرة بتخزن فيه بيانات وبقرأ منها
بيانات لكن ال class لأ مخطط لكن المهم ال class
ليش؟ لأن ال object تم إنشاء بناء على المخطط اللي
اتحدد في ال class طيب أنا هنا إنشأت ايش object
واحد طب شوفوا إيش بده اعمل يا جماعة اجيت قلتله S2
يساوي
Student ايش عمل هنا؟ راح في الذاكرة و حجز مكان
جديد كيف شكل المكان الجديد؟ نفس هذا بالظبط بناء
على شكل ال class صح ولا؟ حجز فيه مكان لل ID فاضل
لسه و مكان تاني لل name و حط تحت ال methods setID
و getID و setName و getName
هذا الملف للطالب وهذا الملف للطالب تاني كلمني إيش؟
إيدي عندى ولد جديد في البيت وعملتله ملف جديد واضحة
يا جماعة؟ هذا برضه عملت للطالب ملف جديد طبعا الملف
الجديد هذا أشرت عليه مؤشر تاني اسمه مين؟ S2 أي
صرفي هنا عندي S2طبعا الـ S الأولاني ال ID is what
مكتوب صار فيه رقم صح؟ و لسه في الأولاني برضه هذا
فيه أحمد هدول أحمد و الرقم هذا معطيين لمين؟ ل S1
هذا لسه ال ID و ال name تقع هنا فاضين طبعا لما
نعطيه بيانات بيجي ل S2.6 name و بيقول عليه
assetname.setid ونضع الرقم اللي بدناه الآن
يا جماعة بدنا نشوف او نتخيل كيف ال object oriented
هتوفر علي مجهود ووقت الان احنا تخطيط بيانات الطالب
تم وينفي ال class يعني أنا هتعب فقط في إنشاء ال
class لكن لما أجي أنشق بيانات طالب فقط بقوله إيش
يساوي student لو أنا معرف 30 متغير في ال class
هينشيهم كلهم بضربة واحدة لما أقوله إيش student
أنشق الملف كامل بس طبعا بضال عليا أني أعبيهبيانت
أنشأ الملف كامل و اتعامل معاه كشيء واحد ك object
واحد الفكرة ان هذا ال student او ال S1 مش حاجة
واحدة عبارة عن ايش مجموعة حاجات بس لات تسهيل
تتعامل معاها كإنها إيش لأنها شيء واحد و هذا الكلام
اللي حكيته ان انا بتعامل مع الشخص اللي عندى في
البيت كله كإيش كملفأشوف عشرة ملفات أحسن ما أشوف
سبعمية أو تمامية واجهة تخيلوا ان بيانات الطلاب
كلهم عملهم في ملف واحد معناه أن تلاتين ألف طالب
بتعمل تلاتين ألف string و تلاتين ألف ID و تلاتين
ألف name و تلاتين ألف list عشان يخزن المواد اللي
ماخدها صح ولا؟ هعوم في بحر كبير لكن هيك أنا رتبت
الشغل جلتله تعالىبيانات الطالب كلها اعملها class
لحال هيكر البيانات هذه و بعدين لما تتعامل مع
الطالب كله انشئ object من ال class يمثل بيانات
الطالب واضحة الفكرة يا جماعة هدف الأن أن تفهم
أشياء نقول لسه ضايل علينا شغل شغل كتير في الموضوع
طيب في موقات لسه ماشرحناش اتجوزناهاإيش هي و أنا مش
راح أقعد في ال class قولتلكوا انسوا الكلام الموجود
هنا صح؟ و انسوا السلف طب بنرفهم على ال gate إيش
السلف؟ إيش معناها؟ و كيف إحنا كتبنا البيانات
هذه طيب خلينا نمحيهم عشان نكتبهم من أول و جديد إيش
بحكي لهم؟ أنا لإي أنا عملت class student مالها؟
فاضيبيدنا نحدد أيه البيانات اللي هتنحط جوا ال
class بقول أي بيانات اللي هتحطها في ال class بدك
تعملها وسيلة للإخراج معروف إن أنا بعمل ال class
كهيكلة لبيانات شيء معين يعني هي في النهاية هتمثل
مجموعة بياناتمش هتحتوى على مجموعة بيانات انا بقيت
في الكامل هيحتوى من ال object تمام هذه هتمثل
مجموعة بيانات كل واحدة من البيانات اللي هتكون جوا
ال class لازم او افضل انك توفرلها method للادخال
او function للادخال و function للاخراج للقاعة تمام
يعني مثلا انا student له name بدك تعمل method
اسمها set nameو method اسمها get name بدك تعمل ID
بدك تعمل method اسمها set ID و method اسمها get ID
بدك تعمله plan number set plan number و get plan
number address set address و get address هذا
القاعدة اللي بدنا نفهمها عشان هيك انا قبل شوية لما
اتعاملت مع ال main و ال ID كام method عملت اربعة
اتنين set و اتنين getطبعا؟ طيب دلوقت هالكلام دي
بقى بفكر بقول إيش أول بيانات للطالب ال ID يبقى
قدام ال def setid
طيب
أول مفتاح القصد لحاله جاب لي حاجة غريبة كتاب ليها
اسمها self طيب المفروض أن ال setid تاخد parameter
بعين تقول لأ ال set دايما set هنا و مش set في
الحياة ال set في ال function هذه المفروض تاخد ID و
تخزنه اين؟ في الذاكرة طبعا فالمفروض انه انا ابعد
في ال set ID ايش متغير اسمه ID بس لسه اللي مش
فاهمين هو مين ال self هذا اش هو اش الموجود هنا ال
self هذا باختصار شديد جدا يا جماعةهو عبارة عن
المكان المجهول هذا، فقب الأسود الموجود في الذاكرة،
شايفين هذا المكان؟ هذا، هذا، ال block اللي في
الذاكرة، هذا بنسميه إيش؟
سلف، هذا بنسميه سلف، معناه أن أنا .. ليش أعطاني
السلف هذا؟لأن أنا فعليا البيانات كلها هتتخزن وين
يا جماعة؟ في ال self و هتنقرأ من وين؟ من ال self
فأنا في ال method setID بعتله حاجتين، إيش هما؟ ال
ID اللي هيجي من وين ال ID هدا يا جماعة؟ من ال
object، من برة، من البرنامج الأصلي، مش أنا بعمل
مثلا input و بقوله setID، تمام؟ يعني المفروض ال
user مثلا يدخل ال ID عن طريق form أو غيرهو بعدين
هذا ال ID بدو يتخزن في الذاكرة في المكان الخاص في
ال object هذا اللي بنتشورله بحاجة اسمها ايش self
فالمفروض انا هنا ال set ID اخد حاجتين self و ID
ليش؟ عشان ياخد ال ID و يحطه وين؟ في ال self طبعا
مش هو لحاله هيخزنه انا بده اخليه يخزنه طبعا فانا
ايش قلتله كتبت السطر هذا روح لل selfتمام؟ وحط فيها
حاجة اسمها id يساوي id هذا عشان نفهمها أكتر بدي
أحطها دي x تمام؟ حطيتها إيش عشان مايصيرش تمييز في
الأسماء أه طلع باعي هنا set id بعتله سلف oxأقول له
أن مفروض الكود اللي أكتبه هنا يأخذ ال X هذه و
يخزينها في السلف في السلف الكود هذا اللي أنا كتبته
هو سطر واحد فقط هذا أيش معناه بقوله روحلي على
السلف و أعمل dot ID هذا أيش معناه على طول أول ما
أقوله سلف dot ID بروح بحجز مكان هنا بعمل خططبعا
هذا قيمة اول ما يشوف كلمة dot self dot حاجة هذا
المكان ايش بيسميه بيسميه ID و بيحط فيه مين قيمة ال
X اللي دخلها ال user لحد تلان هذا فيه name مافيش
فيه name متى انشأ ال ID في اللحظة اللي قلتله فيها
set IDرحل السلف وعمل dot هنا أنشأ مكان حجز مكان
اسمه ID وخزن فيه ال X يعني القصد انه هذا ال ID
بخلف على ال X صح؟ هذا مكان موجود وين؟ في السلف
وهذا ال X هي القيمة اللي مررتها من برا عشان هيك
انا لو كتبتها زي هيك زي قبل شوية ماتمخبطوش
هذا ال ID مش هو نفسه self.id، هذا متغير إجا من
وين؟ من برا، من المستخدم، تمام؟ وهيتخزن في متغير
موجود داخل ال selfطبعا و احنا بقولوا طب ليش ما
حطيتوا اسم تاني يعني اذا بدنا نحط اسماء مختلفة
بدنا نقعد كل شوية X و Y و Z و W و جدا و نخلص
الحروف و نقلف اسماء تانية اه فلنتسهيل كتبت هذا ID
وهذا self.id بس ليناعرف ان هذا مختلف عن هذا هذا
القيمة اللي اتمررت من ال user طبعا و هذا المكان
اللي انحجز داخل ال self
زي اللي بنى عمارة تمام و لسه العمارة مش مجسمة تمام
فكل ما يجي له واحد set ID بروح بقطعه نطفة و بحطه
فيها تمام هذا زي هيك ال object نفسه أول ما قلتله
نفّفت الأمر هذا أنشأه بس لسه ماله مش مجسم امتى
بيبدأ يتجسم لما أقوله set IDببعتله قيمة بروح اول
ما لايت كلمة self.id بحجز مكان بالاسم هذا و بحط
فيه القيمة اللي انا مررت طيب اذا انا حكي انا يا
جماعة ان اي قيمة بدي اخزنها بدي يكون فيها method
للتخزين و method للقراءة زي ما في عندي method
اسمها setid بدي اعمل method تانية اسمها get
Get ID الـ
Get ID هذه إيش المفروض تعمل يا جماعة؟ إيش المفروض
تعمل؟ ترجّه القيمة بتاعة الـ .. تترجح الـ ID تمام؟
وين الـ ID موجود الآن؟ داخل الـ self عشان هيك
قلتله return self.id
هنا قلت له خذلني في الself.id هنا قرأت من self.id
بإنفعش لازم أحط self كيف؟
البيانات
مخزنة داخل ال self عشان انا أجيب البيانات لازم
أجيبها من ال self و أخزنها داخل ال selfهذا
البرنامج ال ID هذا متغير بقعة ال user أخدته و
خزنته في ال self ID بعد ما تخلص ال function هذه
بطل في وجود لمين لل ID اللي بعته ال user صار
البيانات مخزنة في ال self.id بالدقائق او بالدقائق
من ال self.id عشان هذا قلت له return self.id ال
name نفس القالية تماماset name على
طول أول ما قلت له set name إيش طلّى عليه ال self
هذا ال self ده من ورايا و ورايا في ال class ليش
لإن فيه أنا بخزّن و منه بقرأ معايا أنتوا ولا لأ يا
جماعة طيب ال set name هذا لازم أنا أعمله عشان ال
user يبعت name name فكتبت أنا متغير اسمه name وهنا
إيش بدى يعمل بدى يروح self dot name يساوي nameبدي
اخد الاسم اللي بعته ال user و يخزنه في مكان جديد
اسمه name موجود داخل ال self بعد السطر هذا لما
يتمثل هيروح يحجز مكان جديد هنا اسمه مين اسمه name
طيب
زي ما عملت set name بدي اعمل get name
برضه جابل السلف مططليا هالسلف هادى، تمام؟ إيش بده
أعمل داخل ال get name؟ return من وين بده أجيب ال
name الآن؟ مدام أنا خزنته في السلف بقوله name self
dot name بس اسم ال book هنا ده أنا بتحكم فيه أه
طبعا أنا بتحكم فيه، تمام؟
شوفوا الآن مثال عملي آخر اجيت انا اعمل برنامج ل
supermarket تمام؟ وعندي انا products موجودين في
المحل ال products اللي في المحل في عندي اسم ال
product نوعه ال ID تبعه تمام؟ تاريخ إنتاجه سعره
هذه بياناته كلها والمحل فيه مثلا عشر تلاف product
معناها بدي خمس متغيرات في عشر تلاف عشان اعبر عن
من؟ عن كل ال items الموجودين في ال market صح ولا؟
واحد بيقول استخدم list بس في الحالة دي كام list
هلزمني؟ على الأقل خمسة list صح ولا؟ list لأسماء ال
product و list لل ID و list للأسعار و list لتاريخ
الصراحية و تاريخ الانتهاء و بدك تخلي كل لسبة ربوطة
في التانية يعني لو حذفت من واحدة بدك تحذف التانية
لازم يكون نفس الترتيب فجزة كبيرة فالان احنا بنيتفف
انه نعبر عن ال product كله اللي في ال supermarket
كاش ك object طيب
كيف نعبر عنه ك object اول حاجة طبعا قبل ما ننشق ال
object بروح ننشق مين ال class بالظبط مخطط ال
object كيف شكله هيكونفبنجي اجيت اعملت Python فايل
جديد بدي اسميه مثلا product ايش هي ال product؟
منتج تمام بكتب كلمة class و بكتب اسمه ايش سميناها
احنا؟ تمام product و بحط نقطتين اذا خلينا نتفق ايش
البيانات بتاعة ال product اللي في هذا خلينا نتعامل
عشان السرعة نتعامل مع تلت بيانات بس اللي هو ال ID
بتاع ال product اسم ال product و ال type و السعر
أربع معايا يا جماعة أربع متغيرات بمثله ل product
مادام أنا بتعامل مع أربع متغيرات كام function بدي
يكون عندى موجود تمانية تمام شوفوا إيش بدي أعملهم
بدي أقوله defset ID ال ID بتاع ال product تمام
افتح قول زيك ايش كتب لك self مفروض انا اعمل فاصلة
و اقوله ID على اساس ياخد ال ID اللي بعدته و يحطه
في ال self مرة تانية ان ممكن هذا الاسم اللي هنا
انا اتحكم فيه احط اسم اللي بديه يكون هنا X وهنا
هذا ال X مالهاش علاقةبال ID اللي هيتخزن في السلف
هذه أسماء أنا بحددها بس احنا عشان ما نتعاملش مع
أسماء كتير بحب أنه يكون إيش الاسم نفسه بس بيدا
يكون ثانوية أداء مختلف عن هذا واضح يا جماعة؟ زي ما
عملت set ID بدي أعمل diff get
ID إيش بده يرجع هنا؟ مين ينجلني؟ return self.id
def set name هنا
هياخد name و هنا بقول self.name هيساوم
ال name و بعدين def return
self.nameبعدين set price def set
price و هاي ال price self dot price
Def set type تقريبا
كلهم نفس الفكرة self dot type يساوي type
طيب هيك احنا انشأنا ال class واحد بيقوللي غلبهم
انت هتغلب بس ايش مرة واحدة بس تمام تعالوا الان
نروح نستخدم ال class بتاعتي ال class بتاعتي اسمها
product وموجودة في ملف اسمه product فالان
بدي اقول from product import product
هنا بالاسم الملف product واسم ال class product طيب
اتيت انا قبل المنتج جديد طبعا بدي اقول له P1 هذا
ايش اسم المتغير الخاص بمين بالمنتج بس هي اتعامل مع
المنتج كله كاش ك P1 كيه بدي انشي object بال class
اللي انا عملتها بكتب product اسم ال class و بفتح
قصين زيه هيك على طول راح حجز مكان في الذاكرة خاص
في ال product
هذا المكان لسه فاضي بدي أبيه بي واحد دوت ست ID حط
رقم المنتج بي
واحد دوت ست price بي
واحد دوت ست ال name
P1.6 هذه
كلها الـ P1 الأنصار يمثل أيش؟ بيانات product 1
تمام؟
أيش
عملت أنا؟
تمام؟ و بدي أغير هذا
بيانات product تاني طب انتبه معايا شوية إيش
هذه اللي عملتها؟
إيش هذه اللي سويتها تحت؟ list فاضي صح ولا لأ؟
إيش حطيت فيها؟ إيش صويت في ال list؟ حطيت P1 و P2
شوفوا الآن list واحدة شوفتوا كيف مثال الشهادات
ولاد العيلة عملت أنا شنطة داخلها إيش؟ فيلات و بدي
بيانات واحد منهم باخد الملف تبعه و بعدين بقرأ
البيانات اللي فيه أنا عند list واحدةفيها شئين two
objects وكل object عبارة عن ايش مجموعة بيانات واحد
بيقول طب عادى كيف هنطلع البيانات اللى موجودة فى ال
list هذى طلع معايا هنا كيف بن .. بنلف على ال list
فى الأول صح ولا كيف نلف على ال list four I N list
واحدلأن كل I عبارة عن إيش؟ عبارة عن object فبدأ
أقول له لل I الواحد print I dot get ال name أنا
عامل ال get name لإيش؟ عشان نقرأ وبدأ أقول له
print I dot get price يعني
أنا الآن قاعد بعمل loop على ال product وكل واحد
بمر عليه بطبع اسمه و بطبع ال price تبعهفاهمين حاجة
يا جماعة؟ اه تعالوا نعمل run run
لهذا الملف طيب
هاي النتج اللي طلع عندي طبقة ل cheese 60 و milk 10
مش بس هيك شوفوا معايا كيف هنستفيد من ال object
oriented programming شوفوا
ال code اللي انا هكتبه على ال gate و ننهي في
المحاضرة طلعوا معاياهكتبه على السريع انتبهوا معايا
عشان لحالكوا تفهموا انا ايش اللي بعمله
طيب يا جماعة خلصنا لسه هنفذ البرنامج لان بس قبل
مانفذه حد فاهم انا ايش بعمل؟ ايش سويت انا؟ انا
الان بدي اعمل بيانات ل products بدي ابني ال
database بتاعة ال supermarket اللي هي عبارة عن
ايش؟ بيانات الحاجات الموجودة في ال supermarket
فراحت في الاول عملت list اسمها ايش؟Products على
أساس إن أنا قررت إن كل البيانات بتاعة ال items
تتخزن في list واحدة طبعا بالوضع الطبيعي والمنطق و
بدون object oriented programming ولا يمكن أخزن
بيانات ال items في list واحدة صح لأن أصلا كل item
له عدة بيانات فلا يمكن أن أتخزن بس كيف أخزنها في
list واحدة مبدأ التجميل بيانات ال object كل ال
product الواحد كله بيتعامل معاك objectطبعا كل
شهادات الشخص بتعامل معاه كإنها ملف واحد فروحت
أنشأت list اسمها product لسه فاضية على أساس إنه
هيتخزن فيها ال objects اللي خاصة في مين في ال
product بعدين
قلت له while true إيش بده أدخل هلجت أنا في while
loop عشان أطلب من المستخدم يدخل بيانات ال product
طبعا ال product الواحد المستخدم يدخله إيشبيانات
كتير اول حاجة طلب منه input دخل ال ID طبعا انا قلت
عشان انهي ال loop اذا كان اشارة سلة اعمل break
عشان ينهي يعني غير ايه دخل ال product ال ID وخزنه
في متغير اسمه ID لسه لحد الآن ما أنشأناش احنا
class تمام احنا أنشأنا op لسه variable اسمه ID و
بعدين دخلنا ال name وخزنه في متغير اسمهاسمه إيه؟
ودخنا ال price وخزناه في متغير اسمه price ونفس
الحاجة ال type يعني بيانات ال product لسه مجزقة
على إيش؟ على variables اللي هم بده يجمع ال
variables هذه القيم كإيش؟ ك object واحد فروحت بعد
هيك أنشأت إيش هذا السطر؟ أنشأت object تمام؟ أنشأنا
object من ال classProduct معاكم انتم يا جماعة؟ و
بعدين أخذنا البيانات اللي دخلناها اللي هي ال ID و
ال name و ال price و ال type و حطناها .. حطناها في
ال object عن طريق ال set name set ID set type set
price لأن بعد اللحظة هذه انشأ مكان في الذاكرة في
ال ID و في ال name و في ال price و في ال type
البيانات مخزنة هنا وعليها مؤشر اسمه مين اسمه P
وبعدين حكيتله خد ال P وحطه وين؟ وحطه في ال list
ايش اللي صار الان؟ هاي في عند list فاضية هنا تمام؟
بياخد ال P المؤشر هذا لحظة انا قاعد بقول ان ال P
عبارة عن مؤشر يعني ال P هو مش البيانات هو مؤشر
بأشر على مكان البياناتفي الذاكرة هذا ال P إيجي
تخزن هنا يعني لاحظ هذه أول مكان فيها بأشر وين على
object في بيانات ال product خلصنا؟ لسه مخلصماش بدي
أرجع يكمل في ال while loop صح ولا يا جماعةهيرجع
يكمل في الويلوب هيطلب يدخل كمان ايش كمان ID كمان
ال product هيدخل ال ID و هدخل ال name و هدخل ال
price و هدخل ال type لحتى ان انا لسه مانشأتش ال
product التاني هنا انشأت object جديد اسمه ايش P
وحدة يقول لي طب ما هو في P قبل؟ لأ هالجيت أنا
مادام داخل في four loop تمام؟ انا كل ما اقولله
يساوي product بنشق ايش؟ ايش جديد ال P الأولاني صار
مخزن وين؟ في ال list هذا الآن لما اقوله P يساوي
product بروح بحجز مكان جديد في الذاكرة كيف شكل
المكان الجديد؟ هذا بناء على شكل ال classتمام؟ و في
المكان الجديد هذا في الذاكرة بروح بعمل set name
set ID set type set price عشان يخزن البيانات
الجديدة تمام؟ و بعدين بروح بقوله product.append ال
P المؤشر ال P الجديد ال P اللي بأشر على هذا هيتاخد
ويتخزن وين؟ في المكان التاني في ال list هيرجع
لل loop تانيهيدخل بيانات product جديد وهينفذ السطر
هذا product هيعمل مكان جديد في الذاكرة وهيحط
البيانات الجديدة في المكان الجديد في الذاكرة وهدا
عليه مؤشر اسمه P هياخده يضيفه لمكان التالت في ال
list هيك بيكون شكل الذاكرة تعتي شايفين كيف شكل
الذاكرة معجدة صح ولا list طالع منها خيوط بتروح وين
على أماكن في الذاكرة، لكن أنا كمبرمج بلزم أفهم
التفاصيل هذه كيف شكلها في الذاكرة؟ لأ، تمام؟ لاحظ
أن التعامل في ال code هنا أسهل، تمام؟ لكن هذا ال
.. مين اللي خب عني تفاصيل التعقيدات هذه ال object
oriented programming؟ إنه أنا خلاص في الآخر بتعامل
معاها بيانات كل product كحاجة واحدة منها product
فاهمين حاجة جمعها معاها؟
طيب بعد ما اخلص كل شيء طلعوا معايا يا جماعة بعد ما
اخلص عملية الادخال كلها دخلت في for loop for I in
product ال I بده يعمل loop عنين؟ على نفس ال head
ال I بتمثل ايش؟ product روحت لكل I قلت له اطبعلي
اسمه واطبعلي ايش؟
السعر تبقى فالان بعمل run عشان نجرب العمل بالتطبيق
اللى هيطلب منى يدخل ايش ال ID هاي اي رقم ال name
milk مثلا ال price عشرة تمام ال type milk بدأنا في
ايش ال product تاني تمام ال price عشرين
برضه milk دخل كمان ID و هكذا لما بدى خلص بحطها ده
إيش سلم تمام و هنا الطبع ليه بيانات ال products
كتاب ل milk إيش عشرة و cheese عشرين هذه المحاضرة
كانت تقديم أو شرح لمفهوم ال object و ال class
ضروري جدا يا جماعة تروحوا تجربوا الشغل هذا
المحاضرة هذه 90% من الفصللأ 90% من الفصل .. مش
الفصل الدراسي كله الفصل يعني الفصل هذا اللي بتاع
ال object oriented اللي فهم المحاضرة هذه المحاضرات
الجاهية هيكون سهلين جدا و بعدين هذا مهم ليش لأن
بعد الفصل هذا ناخد ال graphical user interface كيف
نصمم وجهات البرامج و كل تصميم الوجهات معتمد على
هذا الكلام فضروري تفهموا الموضوع هذا