درس OOP: ماهو object و ماهو class
الكاتب: Mr.Aziz
تاريخ النشر: 2023-03-14 05:00:19
مساء الخير
راح نتكلم عن oop الى هو Object-Oriented Programming
و بيكون على شكل اجزاء بحيث كل مقال بيكون له شرح خاص به لانه oop موضوعه طويل جدآ وراح ابسطها بشكل اجزاء او parts تمام.
ماهو oop: هو نوع من الكائنات او خلينا نقول نوع من كلاسات هل خواص يعني كل كلاس له خواص خاصة بها و يتم استخدام كلاسات عن طريق oop
طيب ماوضحت الفكرة
نشوف الصوره
مثلآ عند أنشاء الكلاس بأسم سيارات
في object راح نكتب تحت هذا كلاس بأسم نيسان او فولفو او مازدا
بنفس الوقت مثال اخر
كلاس بأسم فواكة ولكن object يكون تفاح و برتقال ورمان و هكذا
طيب ايش فوائد oop؟
1- يكون كود نظيف و يتم تشغيله بشكل أسرع وأنظف وأرتب بحيث المبرمج يقدر يستوعب ويشوف الاكواد بدون أي عناء.
2- في مصطلح دائمآ يقولونه هو DRY تعني لاتكرر الاكواد أكثر من مره مثلآ
أفرض عندنا ثلاث كلاسات
كلاس نوع سياره مازدا
كلاس لون السياره أحمر
كلاس مواصفات سيارات فل كامل
هكذا
لايصح ان يصبح هكذا
كلاس نوع سياره مازدا
كلاس نوع سياره نيسان
لانه موجود كلاس نوع السياره خلاص هنا نقدر نضع أكثر من نوع بنفس وقت
هذي امثله و نقدر نسبدلها بالدوال داخل كلاس.
طيب خلونا نطبق على البرنامج
أول شي ننشئ كلاس بأسم myclass
بتكون بهذي طريقة عند انشاء كلاس تمام ولاننسى العلامة ; بعد نهاية القوس..
الان داخل كلاس نضع شي اسمه public بحيث نقدر نكتب دوال أو متغيرات
خلونا نشوف
الان وضعنا اسم المتغيرات ولكن قبلها وضعنا وش نوع access خاص او عام
بس هذي راح اشرحها بأذن الله لاتقلق بشأنها.
ثم وضعنا متغيرات نوع int و نوع اخر هو string تمام
كذا خلصنا من class
ألان نجي لل object
بس بيكون هالمره داخل main
بينكتب بهذي طريقة البسيطة.
أول شي نكتب أسم كلاس myclass ثم اسم object طبعآ ممكن يكون اي اسم اخر عادي ولكن هذي مثال
لانه ايش سوينا بضبط
كتبنا myclass الى هو الكلاس الى تم انشاءه فوق
ثم كتبنا الى بعدها Thisobject هذا اصبح object للكلاس myclass
هنا بأمكاننا نستدعي المتغيرات التي بداخل كلاس الى هو number و name
تنكتب بهذي طريقة
myObject.name
اسم object ثم نقطة ثم اسم المتغير التي متواجد في الكلاس تمام!
بعد كذا بأمكانك انشاء قيمة مثل مافعلت
myObject.name = "Aziz";
هنا تم انشاء قيمة بأسم Aziz
نفس الطريقة تم أنشاء المتغير number
myObject.number =5
هنا تم أنشاء قيمة على المتغير number التي متواجد في الكلاس
كذا يكفي ؟
نعم كذا يكفي وبأمكاننا نطبع المتغير نفس ماهو
بهذي طريقة
بهذي طريقة تم عمل print و تم النسخ اسم object و اسم المتغير فقط
وظهرت لنا النتيجة
طيب عندي بأمكاننا نعمل object اخر آي object2 ؟
نعم تستطيع
بتكون بهذي طريقة
مثل ماوضحنا عملنا object أخر بأسم object2
ثم وضعنا نقطة وضعنا اسم المتغير نفسه الى داخل كلاس ولكن القيم الموجوده في theobject نفس ماهي لاشئ يتغير
لانه راح يعتبر متغير جديد في object2 عن theobject
و تستطيع تعمل مصفوفات على object لكي يصبح أكثر مرونة