Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming -2 برمجة -2 المحاضرة-7 Lecture-7.

Similar presentations


Presentation on theme: "Programming -2 برمجة -2 المحاضرة-7 Lecture-7."— Presentation transcript:

1 Programming -2 برمجة -2 المحاضرة-7 Lecture-7

2 Classes & Objects الفئات والكائنات

3 المحتويات مقدمة الفئة (Class) وكيفية الإعلان عنها الكائنات Objects))
محددّات الوصول: public & private أساليب الوصول: دوال set & get دوال البناء والهدم

4 مقدمة تعرفنا في السابق على أنواع عديدة من المتغيرات, مثل الأعداد الصحيحة (int & long), الأعداد العشرية (float & double), الحروف (char), وغيرها ... تخبرنا أنواع المتغيرات عن حجمها في الذاكرة, المعلومات التي تخزنها, الإجراءات والعمليات التي يمكن أن تُجرى عليها بصفة عامة, النوع يمثل إحدى الفئات (class) نستطيع إنشاء أنواع جديدة لحل المشكلات, وهذه هي البرمجة الموجهة الكائنية أو البرمجة باستخدام الكائنات (Object Oriented Programming)

5 البرمجة الموجهة الكائنية Object Oriented Programming (OOP)
يُطلق عليها برمجة كائنية أو غرضية الهدف أو هدفية أو شيئية هي برمجة تقوم باستخدام الكائنات(objects) في كتابة الكود/البرنامج الفئة(class) عبارة عن مجموعة من الكائنات المتشابهة في الصفات والسلوك الكائن(object) يتكون من: صفات(attributes) أو متغيرات(variables) سلوك(behavior) أو دوال(functions) الكائن(object) عبارة عن نسخة أو حالة مستقلة من الفئة(class)

6 مثال: السيارة يُمكن التفكير في السيارة على أنها مجموعة من الأبواب, والمقاعد, والنوافذ, وغيرها ... وبطريقة أخرى يُمكن التفكير فيها من خلال معرفة ما يُمكن للسيارة عمله: يُمكنها أن تتحرك, وزيادة سرعتها, وتقليلها, والتوقف, وغيرها ... تُتيح لك الفئة(class) كبسلة أو تجميع هذه الأجزاء والإجراءات في مجموعة واحدة فوائدها للمبرمج: كل شئ في مكان واحد, مما يُسهل من الإشارة للبيانات, ونسخها, ومعالجتها

7 الفئة Class تتكون الفئة(class) من مجموعة من الصفات والسلوك
الصفات تمثّل المتغيرات, والسلوك يمثّل الدوال بالنسبة لفئة السيارة: صفات السيارة مثل المقاعد, الإطارات, لون السيارة, وغيرها ... سلوك السيارة مثل التشغيل, التوقف, الحركة, زيادة السرعة, وغيرها ...

8 الإعلان عن الفئةDeclaration Class
بشكل عام class class_name { data_type member1; // صفة أو متغير data_type member2; // صفة أو متغير data_type function_name(); // سلوك أو دالة . }; مثال(1) : فئة السيارة class Car { int seat; // صفة أو متغير int wheel; // صفة أو متغير int color; // صفة أو متغير void start(); // سلوك أو دالة void stop(); // سلوك أو دالة int increaseSpeed(); // سلوك أو دالة };

9 الإعلان عن الفئةDeclaration Class
مثال (2): فئة القطة class Cat { int age; // صفة أو متغير int weight; // صفة أو متغير int color; // صفة أو متغير void meow(); // سلوك أو دالة void sleep(); // سلوك أو دالة void chaseMice(); // سلوك أو دالة };

10 تعريف الكائنInitialization Object
مثال: تعريف الكائن Friskyوالذي ينتمي إلى الفئة Cat Cat Frisky; كما ذكرنا سابقاً: الكائن(object) هو نسخة أو حالة مستقلة من الفئة(class) بمعنى أنه يمكننا تعريف العديد من الكائنات وينتمون إلى نفس الفئة

11 الوصول إلى صفات وسلوك الفئة
بمجرد تعريفك لكائن من الفئة, (مثلا الكائن Frisky من الفئة Cat), ستستخدم النقطة (.) للوصول إلى صفات وسلوك(متغيرات ودوال) هذا الكائن(object) وبنفس الطريقة, لاستدعاء السلوك(الدالة) meow( ) مثال: تعيين القيمة 50 للصفة(المتغير)weight الخاص بالكائن Frisky Frisky.weight = 50; Frisky.meow();

12 مثال عام: يوضح كيفية كتابة الفئة(class) وتعريف كائن(object)
#include<iostream> using namespace std; class Cat // إعلان عن فئة { int age; // صفة أو متغير int weight; // صفة أو متغير int color; // صفة أو متغير void meow(); // سلوك أو دالة void sleep(); // سلوك أو دالة void chaseMice(); // سلوك أو دالة }; void main() Cat Frisky; // تعريف كائن system("pause"); }

13 محددّات الوصول Access Specifiers: public & private
محددّات الوصول تمكّن المبرمج من تحديد مدى التعامل مع أعضاء الفئة (الصفات والسلوك) بمعنى آخر, بالإمكان تحديد إمكانية الوصول واستخدام أعضاء الفئة في البرنامج تأخذ كافة أعضاء الفئة – الصفات والسلوك – المحدّد خاص(private) افتراضيا الأعضاء الخاصة(private) يمكن الوصول إليها من خلال سلوك(دوال) الفئة فقط, أما الأعضاء العامة(public) فيمكن الوصول إليها من أي مكان خارج الفئة

14 تابع .. مثال: فئة القطة class Cat { int age; // صفة أو متغير int weight; // صفة أو متغير void meow(); // سلوك أو دالة }; في هذا الإعلان, تأخذ الصفتين والسلوك المحددّ الخاص(private) افتراضيا فإذا كتبنا التالي داخل الدالة الرئيسية main : خطأ بسبب أن محدّد الصفة age هو خاص(private) Cat Boots; Boots.age = 5; //error! Can’t access private data!

15 تابع .. الطريقة التي يمكنك بها استخدام الفئة Cat بحيث تستطيع الوصول إلى الصفات والسلوك(المتغيرات والدوال): أصبحت الآن جميع الصفات والسلوك عامة بعد إضافة public: class Cat { public: int age; // صفة أو متغير int weight; // صفة أو متغير void meow(); // سلوك أو دالة };

16 مثال: الوصول إلى الصفات والسلوك وجعلها عامة في الفئة Cat
#include<iostream> using namespace std; class Cat { public: int age; int weight; }; void main() Cat Frisky; Frisky.age = 5; cout<< "Frisky is a cat, its age is: " << Frisky.age << endl; system("pause"); } Frisky is a cat, its age is: 5

17 ملاحظات يُفضّل أن يبدأ اسم الفئة بحرف كبير (Cat, Car, Student, …)
يجب أن تُكتب الفئة(class) قبل الدالة الرئيسية main يتم تعريف الكائن(object) داخل الدالة الرئيسية main الصفات والسلوك الموجودة في الجزء الخاص( (privateلا يمكن استخدامها خارج الفئة(class) (يمكن الوصول إليها من خلال سلوك أو دوال الفئة فقط) الصفات والسلوك الموجودة في الجزء العام( (publicيمكن استخدامها من أي مكان خارج الفئة (من أي مكان بالبرنامج) في حالة عدم ذكر public أوprivate فإن الحالة الإفتراضية هي private

18 كيفية الوصول إلى أعضاء المحدّد الخاص((private
كقاعدة عامة في كتابة الفئات, يجب عليك الإحتفاظ بـ صفات(متغيرات) الفئة(class) كبيانات خاصة(private) وعدم جعلها عامة(public) لذلك سنضطر إلى إنشاء دوال من أجل إحضار وتعيين قيمة الصفات(المتغيرات) الخاصة الدوال هما: set: تستخدم لـ تعيين قيم الصفات(المتغيرات) get: تستخدم لـ إعادة قيم الصفات(المتغيرات)

19 مثال: برنامج لـ مستشفى لنفرض أننا نكتب برنامج لـ مستشفى حجز وحذف موعد
إضافة وحذف مريض إضافة موظف والراتب بيانات موظف بيانات مريض بيانات موعد

20

21 فئة(class) الموظفين

22 هذا البرنامج يحتوي على خطأين:
لا يمكن الوصول إلى الصفات المعرّفة داخل الفئة staffلأنها private

23 أي شئ يتبع الكلمة publicيمكن الوصول إليه من أي مكان خارج الفئة

24 أي شئ يتبع الكلمة privateيمكن الوصول إليه من خلال دوال الفئة فقط
أي شئ يتبع الكلمة publicيمكن الوصول إليه من أي مكان خارج الفئة

25 استخدام دوال set & get لديك الصفات الخاصة التالية ..
كم دالة تحتاجين؟

26 إنشاء دوال set & get دالة set: دالة get: لكل صفة(متغير):
يتم إضافة هذه الدوال في جزء public دالة set: نوع بياناتها المُسترجعة void لها parameter من نفس نوع الصفة يُكتب داخلها تعيين قيمة الصفة إلى الـ parameter دالة get: نوع بياناتها المُسترجعة يعتمد على نوع الصفة ليس لها parameter يُكتب داخلها return لـ الصفة

27 إنشاء دوال get للصفات الثلاثة

28

29 إنشاء دوال set للصفات الثلاثة

30

31 دوال البناء والهدم دالة البناء: هي دالة تُستخدم لإعطاء قيم ابتدائية لـ صفات(متغيرات) الفئة يجب أن تُكتب بنفس اسم الفئة لا تُعيد بيانات أو قيم وليست void أيضًا طريقة كتابة دالة البناء: موضحة في السلايد القادم دالة الهدم: هي دالة تُستخدم للتخلص من الكائنات وتحرير الذاكرة طريقة كتابة دالة الهدم: ~staff() { }

32 مثال: استخدام دالة البناء
staffName raha 123


Download ppt "Programming -2 برمجة -2 المحاضرة-7 Lecture-7."

Similar presentations


Ads by Google