تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دورة في اساسيات c++ - الدرس التاسع و الاخير
#1
الدرس التاسع

* الفئات (الكائنات - الأصناف - classes ) :

درس اليوم  لا يخص ما سبق نهائيا  ، فما سبق يعتبر مستوى المبتدئين و المتوسطين في البرمجة و هو يعتمد على البرمجة العامة أي انك تضع هدفك و بناءا عليه  تصنع البرنامج  ، احب اسميه  برمجة إجرائية أي انك تكتب  الكود  كله دفعة واحدة بدون أي تنظيم  متغيرات و حلقات و عبارات شرط  و شكرا  ، عندما تتطور من نفسك اكثر و اكثر ستجد نفسك لا تستغني عن الدرس الثامن  و الدوال فتجد ان البرنامج اصبح  اكثر تنظيما و أوضح  و دعنا نسميها برمجة هيكلية  و لكن بعد هذه المرحلة ندخل في شيء أخر اجمل و أوسع و لا ينتهي بسهولة و هو البرمجة الكائنية .

سيبك من هذا الكلام  ... فهو للتقريب لا اكثر و قد يكون به  بعد الأخطاء Confused

- مفهوم الصنف : هو عبارة  عن  وعاء  او لنقل قالب عام يمكنك من تخزين البيانات بشكل اكثر تنظيم ، يعني نحن نذكر مثال الطلاب كنا نضع معلومة عن كل طالب في المصفوفة  ، بمعنى اكثر شمول لا يمكننا داخل المصفوفة من نضع اسم الطالب الذي هو نص مع كود طالب او درجاته لانها ارقام  و أيضا داخل قاعدة البانات  لنفترض اننا نسجل مثلا معلومات عن  موظفين الشركة طبعا كل موظف سجله يحتوي على الكثير من البيانات مختلفة الأنواع فدبل ان تربك نفسك في المتغيرات و المصفوفات  نحن لدينا تقنيات البرمجة الكائنية و منها الأصناف .

- مكونات الصنف  :
كود :
class ClassName{
private:
..........
public:
..........
};
1 -  كلمة class كلمة مفتاحية تعني تهيئة فئة جديدة .
2 - ClassName  اسم الفئة و كل العادة  اختار اسم مناسب يعني لو لطلاب سميه student  و ليس stnt  ؟؟؟ Tongue
3 - private  تعريف  متغيرات و دوال تخص الفئة و لا يمكن رؤيتها من قبل المستخدم .
4 - public  و هو جزء التعريفات التي يتعامل معه المستخدم .
5 - ;  لا تنساها فيجب ان تضعها عند نهاية القوس .
---------------------------

عارف لم تفهم private و public   ،  طيب  قلنا ان الأصناف او الفئات ( المسميات كثيرة )  هي عبارة عن اطار يحتوي معلومات من مختلف الأنواع عن شيء معين سيارة  ، طيارة  ، طلاب ،  موظفين  ...الخ   ، لكن ما هو الشيء الأكثر أهمية من  ذلك .. الأمان
اجل الأمان  ففي الأصناف نحن هنا  نفرض نوعين من المتغيرات احدهم  مستوى خارجي و الآخر داخلي يخص الفئة و بالتالي لا يمكن لاحد ان يصل الى المتغيرات التي داخل الصنف يسمى هذا نوعا ما بمبدأ التغليف و غالبا ما ستلاحظ ان المتغيرات تعرف  على شكل خاص بينما الدوال تعرف على شكل عام لانها تتعامل مع المستخدم .

----------------------------

المثال الشامل
كود :
class sum{
private:
int x , y;

public:
int sumnum(int a , int b){
x = a;
y = b;
cout<<x + y;
return 0 ;
}
};


int main(){
cout<<"please enter 2 numbers : \n";
int a , b;
cin>>a>>b;
sum n;
n.sumnum(a , b);
return 0;
}


1 - عرفنا صنف جديد اسمه sum .

2 - في الجزء الخاص عرفنا متغيرين x,y  لا يتعامل معهم المستخدم .

3 - في الجزء العام  عرفنا دالة اسمها sumnum  تقوم بجمع عددين يدخلهما المستخدم  هما a,b  و لاحظ اننا في بداية الدالة قمنا باستعمال قيم x,y  و لم نستعمل a,b  يعني كان المفروض تكتب

كود :
class sum{

public:

int sumnum(int a , int b){
cout<<a + b;
return 0 ;
}
};
 
4 - داخل دالة main ستلاحظ سطور نوعا ما غريبة  و هي

كود :
sum n;
n.sumnum(a , b);

عند استدعاء أي صنف نحن نشتق منه كائن و قد تشتق منه اكثر من كائن  فهنا n هي كائن اشتق من الصنف sum و من هنا سمية بالبرمجة الكائنية  .

و ما بقي الا ان ناخذ قيم a,b من المستخدم و نعوض بها في الدالة  sumnum  و سوف تتولى هي طباعة الناتج .

أيضا في التعريف :

كود :
int a , b;
cin>>a>>b;

يمكن ان تختار أي متغيرين  غير a, b   هنا انا فقط حبيت ان لا اربكك و استعمل نفس الأسماء لكن الامر عادي يمكن ان تفرض أي أسماء .




====================================

تقريبا هذا كل ما في الدورة من معلومات و  ما درسناه هو نبذة مختصرة اعتبرها مقدمة عن البرمجة الكائنية

أتمنى  ان أكون قد وفقت في الشرح و ان تكون هذه الدورة قد أفادت أعضاء المنتدى الكرام

و رجائي الأخير الذي لا ينتهي البرمجة و بالخصوص ++c بحر لا ينتهي ما درسته في الدورة

يؤهلك لصنع برامج لكن لا يؤهلك للاحتراف فالاحتراف لا يأتي من الفراغ بل يأتي بالعمل

الجاد  لذا تابع ثم تابع ثم تابع العمل على مستواك أي شيء غير واضح
غير مفهوم  لا تتردوا في السؤال عنه

خلصت الحلقة الأخيرة Sad

سلام  و بالتوفيق للجميع و الى اللقاء في مسلسلات و أفلام أخرى  Big Grin


الملفات المرفقة
.rar   Class Exam.rar (الحجم : 283 بايت / التحميلات : 49)

العاب من برمجتي  

Smile
الرد }}}
تم الشكر بواسطة: المبرمج الطـــموح
#2
طرحك جميل جدا

نبغى برمجه Objective-C

نبي نفس طرحك
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم