بسم الله والحمد لله والصلاة والسلام على رسول الله صلى الله عليه وسلم الحمد لله رب العالمين بفضل الله سبحانه وتعالى خلصنا جزء الأساسيات وخلصنا جزء الforms بفضل الله علشان نبدأ في جزء جديد مهم جدا وهو جزء الobject oriented programming Object Oriented Programming حاجة مهمة جدا وهتفيدك في كل لغات البرمجة اللي هي بتدعم ال Object Oriented Programming عايزين نتكلم شوية وندردش عن ال Object Oriented Programming ولكن قبل ما اشغل العرض اللي احنا هنوصف به. ياريت تركز في الرسومات كويس. تركز في الرسومات. وفي الالوان. لان الرسومات والألوان منسقة وموضوعة بطريقة بحيث أن أنت لما تشوفها تفهم فعايزك تركز معايا وتركز مع الرسم وتركز مع الألوان بفضل الله على قد ما تقدر لأن عاوزك تفهم ال object oriented programming بجد تعال نشوف مع بعض ايه موضوع ال O O B O O B معناها طبعا عارفين كلنا ان هو Object Oriented Programming خلص تعالا لو حبينا نترجم كل كلمة لوحدها اول كلمة Object معناها كائن كائن يعني حاجة كائن ماشي او شيء فهم الفكرة؟ يعني ممكن تقول عليها كائن، ممكن تقول عليها حاجة باللهجة المصرية، ممكن تقول عليها شيء، فهم الفكرة باللغة العربية؟ يعني أياً كان كلمة object، كلمة oriented معناها توجه.
oriented معناها ايه؟ توجه او اتجاه توجيه شوف انت هتسميها ايه او هتترجمها ايه كلمة بروكيانيك خلاص معروفة البرمجة يعني دي مش قصة يعني ماشي؟ لو احنا حبينا نصغها في جملة مترجمة هتبقى مثلا ايه؟ البرمجة المتوجهة للكائنات او البرمجة المتوجهة نحو الكائنات او البرمجة كائنية التوجه او البرمجة ذات التوجه الشيئي بص يعني مش هنختلف كتير على الترجمة ولا على الكلمات ولا على الكلام دا كله الاهم عندي من كل دا انك تفهم يعني ايه Object Oriented Programming تعال معا بقى اول حاجة هجيبها لك من البداية خالص هاردوير الجهاز اللي حضرتك بتقعد عليه الموبايل اللي حضرتك بتفتحه أي مشين عندك الهاردوير أي هاردوير عندك خلاص وليكن احنا هنتخيل ان الهاردوير دلوقتي هو ايه هو الكمبيوتر اللي حضرتك بتقعد عليه كلام جميل الكمبيوتر ده ايه اللي بيشتغل عليه حاجة اسمها machine language لغة الآلة اللي هي الزيروز والوانز 010110 اللغة اللي هي الباينري المنظمة العادة اللي هو الباينري 0 و 1 بس تخيل ان انت عندك برنامج مكتوب بال 0 و 1 يا خبار اتقدر تعمل ايه يعني ده احنا دلوقتي في لغات برمجة زي ما نوضح و بنستخدم كلمات انجليزي و جمان محتاجة تعليم فما بالك بلمجة اقولك لو سمحت انت عندك 0 و 1 بس اعمل بهم برمجة هتعمل ايه لغة الالة اللي هي البداية خالص. الموضوع طبعا صعب جدا. فجم بعد كده عملوا لغة التجميع اللي هي اللي هي ايه?
حاجة اسمها بيتجمع فيها مجموعة من اللي بتعمل حاجة معينة مقابل مسلا رمز او حاجة هنكتبها فيقوم اكتب حاجات قليلة تنفذ لي حاجات كتيرة. طبعا يا جماعة صعبة جدا. بعد كن فاكرا لان انا عشان بقولك فيه مشين وفيه مقسمبلي لا مقسمبلي صعبة برضو فجم بعد كده عملوا بقى حاجة اسمها ايه high level language لغات عالية المستوى زي ايه زي زي الجافا أنت بتكتب فيها مجرد كلمات إنجليزية حاجات أنت بتبقى عارفها كبشر سهلة عليك كإنسان سهلة جداً واللغة هي المسؤولة عن الزاكرة وإدارة الزاكرة والبروثيسور نعمل فيه إيه وكلام ده يطلع ايه هي اللغة هتشغل بالها بحاجات يعني تفاصيل اوي انت مالكش دعوة بيها انت بس بتتعلم اللغة وبتتعامل معاها ثم اللغة دي بقى هتتعلمها هي اللي بتعملك الكلام ده كله خلاص نيجي بقى للhigh level language نقسمها لقسمين احنا ممكن نقسمها لقسمين قسم اسمه procedural oriented programming وجزء تاني اسمه object oriented programming تمام لغة اجرائية ولغة توجهية للكائنات لو احنا حبينا نتكلم عن الprocedural oriented programming بص اقولك على حاجة محبها لان على قد ما قدر اجيب امثلة واقعية علشان اعيشك اوي في الجو واخليك بفضل الله تستوعب على قد ما قدر بفضل الله تخيل معايا انت عندك مطعم حلويات وانا المثال ده قلته بقوله كتير عشان بفهم بيه الناس بسرعة بخير تخيل ان انت عندك مطعم حلويات والمطعم ده بيقدم للزبون كيك كيكة كده حلوة طعمها حلو بيأكلها رحت جايب شيف فالشيف اللي هو بيعمل لك الكيكة ده كان بيعمل لك كيكة بالشكل ده. وجميلة وبتعجب الناس كتير. وطبعا انت عارف.
لو لا اختلاف الاذواق لبارة السلع. فماشاء الله حلوة الكيكة دي جميلة ونادي بتاكل زي الفل وجنبة وبتاع. راح جيش شيف اللي هو بيعمل لك كيكة دي حصل اي حالة.
مسلا حصل له حالة مرضية. مسلا اه كبر في السن فمش. مسلا بص المهم الشيف ده بقى مش موجود عندك.
لاي سبب من الاسباب. ايه اللي هيحصل؟ هتجيب شيف تاني. الشيف التاني اللي انت هتجيبه ده هيعمل لك كيكة بشكل مختلف.
بس حلوة برضو. حلوة لناس. هتيجي الناس اللي كانت بتاكل الكيكة الاولانية. تبدأ تعترد. تبدأ تعمل زباين جديدة.
تبدأ تتكون عندك مشكلة في المبيعات. حصل حاجة وجبت شي في تالت هيعمل لك كيكة تالتة. حصل حاجة وجبت شي في رابع هيعمل لك شي في كيكة غيرهم وكذا.
فاهم الفكرة? ده ده? انت يعني انا بحاول امسلك البروسيجرال أوريانتد بروجرام بحاول بحاول أمثلها لك بشكل واقعي تمام؟ لغة إجرائية إنت بتتعامل بشكل إجرائي يعني إيه شكل إجراء؟ يعني إجراء تلوال إجراء تلوال إجراء ولو أنا احتجت إجراء من اللي كتبتهم فوقها كتبوا تاني اجراء تلوال اجراء مع اني كتبت فوق اولاني هكتبوا تحت تاني وتالت ورابع وممكن تكتبوا بطريقة مختلفة غير اللي كتبتها فوق وتكون اللي فوق افضل او تكون اللي تحت افضل ما تحرفش بروساجرال اجراء ايه اجراء تلوال اجراء تلوال اجراء.
تعال بقى للاوبجيكت وقال انت مريض حاجة طحفة. تخيل بقى انت هو هو انت صاحب المطعم الحلويات. رحت اعمل ايه بقى?
جبت شيف عنده خبرة. وقلت له احنا عايزين نعمل تيمبلت قالب. قالب معدني.
القلب ده هنصب فيه الكيكة. و تطلع منها ككه شكلها حلو قلك ماشي رح قعد معاك و صمم القالب و كل ده كله و رحت انت عواخد منه القالب رحت من الخراط متخصص صمم لك القالب بقا على شكل تكنولوجي بعد كده خراط بشكل منظم جميل رحت مستلمه منه. الشيف هيعمل العجينة بتاع الكيكة ويصبها في القلب يعمل منها ايه? كيكة. بشكل جميل يجي بعد كده الشيف حصل له اي حاجة ومشي جبت شيف تاني هو عنده خبرة الكيك خلاص اي شيف عنده خبرة هايصب العجينة في نفس القالب هيتلع نفس الكيك ويعمل بقى منها ثالث ورابع وخمس ومية.
خلاص. بقى الموضوع بفضل الله سهل. هو قلب واحد.
لكن هنا في سؤال مهم جدا هسأله لك ولازم تجاوب عليه بسرعة. القلب ده انت بتاكله? لا طبعا.
بتستخدمه? بتستخدمه في الاكل يعني? لا. بيتدمر?
لا. لكن الكاكا دي بتتدمر. يعني بتتدمر بتتاكل يعني. بتتاكل. خلاص يعني خبرها بيروح.
خلاص. بتمشي. بتتعمل وبتستخدم.
لكن ده موجود. موجود. اه ممكن تعمل له صيانة ممكن تعمل له تحسين لكن موجود القالب موجود موجود لكن ما بتستخدموش.
يعني ما ينفعش تجيب مسلا يجي لك زبون في المحل تقول له القالب اهو يا فندم اتفضل كل. هيرميه في وشك ويمشي. صح?
حلو قوي. دي كده ايه? ده بداية. تعالى بقى معي. هنتكلم بقى على حاجة اسمها مفهوم جميل جدا بص في البداية كده هطلعلك رسمة بالشكل ده باللون ده وانا متعمد احط الوينها باللون اللي سود وتخيل معاني ان الرسمة دي هي دخل معايا ال object بالشكل ده خلاص ده ديك ده بداية تعالى بقى ايه نتعمق شوية كمان ادي ال class اهو عندي class اسمه car class اسمه ايه car ال class ده لا يستخدم زي القالب اللي واردتولك من شوية خلاص ولكن هو ده جوا المودل وجوا وجوا السرعة ويقدر يطلع لفوق ينزل لتحت يروح يمين يروح شمال يعني في شوية على سبيل المثال كل ده على سبيل المثال وعلى سبيل التقريب يعني خلاص لما تيجي انت بقى تستخدمه هتعمل منه ايه حاصل كده كده شوف بقى تقوم انت تقول بقى الابجيكت الجديد ده انت اللي بتأيفه على مزاجك بتأيفه دي يعني يعني تعمل يعني بتعملوا تصميم على مزاجك يعني.
فاهمني? كلمة بتأيفه دي كلمة مصرية. يعني بتعملوا على مزاجك يعني معناها كده.
خلاص? تقول المودل بم دابليو اه الكلار ريد. الاسبيد تلتمية. هو بياخد نفس كل حاجة ولكن انت ايه?
انت اللي بتحدد الخصائص دي. الحاجات دي دي اسمها خصائص. انت اللي بتحددها. دي بياخدها لوحده. تلقائيا بياخدها لوحده من الكراس.
تمام? الكراس لازال موجود. ما بيستخدمش. تعمل منه تاني. وتسمي اسم تاني.
وتحط له تاني. تحط له تانية. الكلاس هو هو موجود تعمل له منه تالت.
وهكزا وهكزا. مثال اخر. كلاس اسمه برسم. يمتلك النمو والجب والسلاري والعدد الأبناء وليه وظائف بيعملها الحاجات اللي تحت دي في خط وتحت وظائف هتعمل منه object بالشكل ده اسمه أحمد الجب دكتور المرتب 3000 عدد الأبناء 3 وبياخد الوظائف كاملة والحاجات دي انت اللي بتحددها تعمل منه object ثاني تعمل منه object ثالث انت متخيل معايا بتعمل ايه؟ مثل اخر class اسمه bird اما جوا name والprice تعمل منه object لطائر و object لطائر مختلف ثاني و object لطائر مختلف ثالث انت متخيل معايا مثل اخر class اسمه drink المشروب المشروب وشو نيمو وشو برايز برضو نفس القصة تعمل منه مشروب اول ومشروب ثاني ومشروب ثالث ورابع وخمس وثلاث وثلاث براحتك اعمل اللي انت عايزه انا بقولك بنعيش مع بعض موضوع ال object oriented programming الجميل الرائع بفضل الله ماشي طيب تعالى بقى ايه نتكلم جدي شوية هنتكلم على class basic components او basic class components اللي هي ايه المكونات المكونات الأساسية للكلاس لما أقول لك كلاس تقول لي اه عندي حاجة اسمها class name اسم الكلاس وعندي حاجة اسمها attributes اللي هي الخصائص بتاعته اللي بتميزه عن غيره وعندي حاجة اسمها methods اللي هي نقاط القوة بتاعته اللي يقدر يعملها الوظائف اللي يقدر يقدمها ركز ركز وخليهم في بالك دايماً تمام تعالى بقى ايه لو حبينا نجيب ورقة كده ونرسم الكلاس ده هروح اعمل لك كده رسمت شكل زي كده برسمه بتخيله على ورقة بتخيله على ورقة برسمه بايدي كده كروكي زي ما بيقول يعني خلاص ادي بحط هنا ال class name بعد كده مثلاً انا بتخيل معاك برسم اكيد برسم على ورقة وبعد كده بحط هنا attribute 1 attribute 2 attribute 3 4 5 براحتة افضل احط في attributes زي ما انا معاك بعد كده شكل خط بعد كده حط الوضع method 1 method 2 method 3 method 4 method 5 و انا هكذا براحتة ده ايه شكل وكأنني برسمه على ورقة.
تعالوا بقى مثال على الكلاس. تخيل معي ان انا عندي كلاس اسمه student. اهو حطيت الكلاس name. الكلاس name هنا اسمه ايه?
student. الattribute عندي student code. code الطالب. وعندي student name اسم الطالب. وعندي خاصية اسمها student branch.
الفئة اللي فيها الطالب او الشعبة اللي فيها الطالب. بعد كده شدت خط خد بالك بعد كا قلتلك انا عندي وظيفة بيعملها اسمها Get Students Count يعني عدد الطلاب مثلا كل ده بيتخيل معاك انا هنا مش عايزك تركز عالمسميات قد ما عايزك تركز يعني F Class تركز قوي في حتة يعني ايه? مشي ده مثال تاني. عندي مسلا دكتور. دكتور اي دي.
ودكتور نيم خاصية ودكتور القسم اللي هو شغل فيه شدت خط. وطلق فيه وظيفة واتنين. و 3 بقلف الوظيفة اللي انا عايزها بقى هي بتتعمل يعني لما اجي بعد كده استخدم getDoctorsCount دي هتجيبلي عدد الدكاترة وهاكذا فأي دكتور بيتعمل من الكلس ده فيما بعد يعني بقدر ان انا اجيب من خلاله عدد الدكاترة وهاكذا واخد بالك امان مسال تاني car عندي مثلا car code code للسيارة وعندي مثلا car name اسم السيارة وهاكذا car model المودل بتاع السيارة وشدد خط وروح تعامل الوظيفة دي وروض دي والوظيفة دي وهكسا.
تخيل معايا. تخيل معايا. طيب بفضل الله كلام جميل. تعالى بقى ايه? هنتكلم بقى عن مع الكراس.
طبعا الشكل اللي قدامك ده هو يعني يقارب للشكل اللي عرضته لك من شوية بتاع الكيك. بس ده مسلا بسكويت. تخيل معايا ان ده الكراس وده الكراس ده زي ما قلت لك بيفضل موجود على طول. لكن ما بيستخدمش ما بيتكيلش يعني.
لكن اللي بيطلع منه بيتعمل وبيتعمل منه. يتاكد. بياخد نفس الخصائص بتاعته. يعني ايه بياخد نفس الخصائص بتاعته?
يعني مسلا الكلاس اللي قدامك ده مشرشر كده من الجنان. صح? متعود كده ومشرشر وهو.
ده خد نفس خد نفس الخصائص. بالزبط. مدور.
خد خاصية الدوران وهكزا. لو عملته بيضاوي او مستطيل هياخد نفس الخاصية. فاهم الفكرة? تمام.
ده ايه? كده احنا بندخل مع بعض ايه? بندخل اكت بقى مع الكلاس.
اكتر من من قلناه من شوية. تمام? تخيل معي شكرا لشكل ده ده برضو شكل ايه بيعبر شوية عن الكلس والأوبجيكس تخيل معي بشكل تاني اهو تخيل معي ان ده كلس اللي فوق ده اللي هي النجمة المفرقة دي اتعمل منها النجمة الاولى النجمة الاولى والنجمة التالتة شبه بعض النجمة الثانية اتحط عليها شوية حاجات كده خاصية ده ممكن تضيف عليها كمان خد بالك يعني ممكن انت تعمل object وتبدأ انت تهندل عليها ده برضو شكل معبر شوي تمام؟ حلو قوي ده كل ده احنا بنتخيل خد بالك احنا كده بنتخيل احنا لسه حتى يعني يا دول بس ايه بنحاول ندخل في الجو والمناخ بتاع ونعيشها بجد ونحسها بجد. طيب.
تخيل معي مثال على ال object بقى بص طبعا ال object هيتعمل من class بص انا متعمد احطلك ال class هنا بشكل لون رمادي كده علشان تحس ان هو لا يستخدم عندك student code وستويت برانش. خلاص? يستخدم امتى? مش هو اللي هو يستخدم.
الاوبجيكت اللي اتعمل منه هو اللي هو يستخدم. اللي اتعمل منه. الجديد اللي اتعمل منه.
اه. عمل من ده. يعني ده الاول اللي عندي. خلاص ده ايه?
الاول اللي عندي. اهو رحت اعمل ايه? رحت اكتب الكود بتاعه كزا كزا والاسم كزا كزا والبرانش كزا كزا.
وفي نفس الوظائف زي ما قلت لك. لكن انا هنا غيرت فيه. يعني مسلا لو جيت عملت اوبجيكت تاني.
هنا الاسم مختلف والكود مختلف صح ولا اه لما اجي اعمل نفس القصة نفس القصة مختلف يعني هنا مثلا الاسم احمد حسون هنا الاسم عمر السيد هنا الاسم اهذا علي في اختلافه وكذلك في الكود وكذلك في البرانش. تمام? لو جينا تخيلنا مثال تاني.
مسلا دكتور. عندي دكتور اي دي ودكتور نيم ودكتور ديبارتمنت. ونفس الوظائف دي انا اللي هي جيت دكتور زكاونت وكل ده هياخده. الجديد يعني منه.
لو عملت منه اهو. كده دكتور عادل صبور Information Systems الـ Object الثاني دكتور أحمد جدالة Computer Science الـ Object الثالث دكتور محمود سمير فايد Computer Science و الـ ID اختلف و الـ Department اختلف تمام؟ اتبعت منت في ال object الثاني وال object الثالث زي بعض لكن الاول information systems فاهم الفكرة؟ بحاول اتخيل معاك ال object لما يتعمل من ال class خلاص؟ طيب ايه تاني برودكت عندي برودكت ايدي و برودكت نيم و برايس لما اجي اعمل منه اوبجيكت جديد بالشكل ده اخد بالك دي كده LG screen هو هو الكلاس عامل منه object تاني بس HP printer مع ان دي شاشة و دي printer بس قدرت استخل الكلاس الكلاس موجود وفر كتير وفر كتير مبجبش مانعيش انا واقعد انقش لا هو موجود علي بشتغل اخد بالك اهو كيبورد حاجة غيرهم خالص وهكذا فهم الفكرة يعني انا لما بيجي اعمل كيك بدل ما اعمل الكيك بدل ما اجيب مناقيش واحد اناقش كده في الكيك واخليها شكل لا خالص وتطلع بقى دي بشكل ودي بشكل ودي احلى ودي مش احلى وليه القالب التمبلت خلاص خلطلك الكصة. فتخيل معايا كل ده ما فهمك وبعكس اتكلم معاك في والكلاس.
ماشي? المثال ده بقى عايزك يعني تستخدمه للتخيل فقط. يعني بس هو فقط نحن نتخيل مع بعض تخيل معايا ان عندك جدول الجدول ده هو الكلس واتبالك انا بقولك تخيّل ماشي الجدول ده ايه؟ وكأنه يعني وكأنه هو ده الكلس خلاص تخيل معايا ان انا عملت object جديد فرح طلع بالشكل ده اللي هو السجل تخيل معايا ان السجل ده هو الكائن الجديد يعني رح اتعامل كائن جديد واحد احمد 5600 بناء على ايه؟ على ال ID و النموس مثلا تخيل معي ورحت ايه?
مدخله يلا خش. اخد بالك. تخيل معي انه رحت اعمل اوبجيكت تاني.
تخيل. قلت له خش. ادخل يعني. تخيل معي رحت اعمل اوبجيكت ثالث. قلت له ادخل.
تخيل معايا انو رح تعمل object رابع و قلتلو ايه ادخل تخيل معايا انو رح تعمل object خامس و قلتلو ادخل اصبح انا كده عندي كم object خمسة object و الخمسة object فيهم كل حاجة و ده مثال للتخيل فقط خلاص عشان ما تجيش معايا تقولي لا الجدول و مش لا انا باتخيل معايا من حاجات منطقية و طبيعية و موجودة في حياتنا عشان تستويب اكتر بفضل الله. تعالى بقى نشوف اخر حاجة معنا وهي. دورة حياة الـ Object دورة حياة الـ Object بسيطة جداً ويعني وما فيهاش أي شغل كل اللي بيتم أول حاجة بيتعمل Create للـ Object يعني بقوم بإنشاء الـ Object بيتم إنشاء الـ Object بعد كده بستخدمه وإلا فلو أنت ما عملتش الـ Object تمام مش هتقدر تستخدمه لانه ما تعملش وفي نفس الوقت لو انت عملته اكيد انت عملته عشان تستخدمه جاني مع ما تفشل ترميه في الشارع طب بعد ما تستخدمه اه خد بالك بقى من اللي جاية دي ترميه بيتدمر وهكذا هيد دورة حياة الابجيك انشاء استخدام تدمير انشاء استخدام تدمير بس لان الكلاس اللي تعمل منه الابجيك موجود يا حبيبي مراحش في حتة موجود سابت.
الاوبجيكت اللي تعمل منه ينشأ. يستخدم يدمر. يدمر ده ازاي يعني? يعني من الزاكرة قصد. من الزاكرة.
عشان بس دماغك ما تروحش بعيد. كده احنا اتكلمنا في تفاصيل بفضل الله جيدة جدا في ال object oriented programming ارجو بفضل الله ان يتم مذكرتها كويس جدا بفضل الله الاشتراك واللايك والشير والمشاهدة أكبر دعم لنا بفضل الله عشان نستمر ونقدم لكم كل جديد وتأكد تماما انك اي حاجة بتتعلمها وتنشرها وبتشارك ربنا سبحانه وتعالى هيفيدك ويعلمك اكثر وهتاخد ثواب على كل حاجة بتنشرها لنا