++C

درس 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 لكي يصبح أكثر مرونة