✓ ما هي األصناف Classes ✓ ما هي الكائنات Objects ✓ أمثلة على األصناف و الكائنات من الواقع ✓ كيف نصنع صنفــًا و كائنـًا جديدًا و نستخدمه ؟ ✓ ما هي الـ Access modifier؟
ما هي األصناف ( )Classesو الكائنات ()Objects؟ ✓ قبل ذلك سألتُك ماذا ترى في الغرفة ؟ فكانت اإلجابة كراسي ،طالب .... ، ✓ هذه األشياء كال منها يعتبر صنفـًا له خصائصه و صفاته و مع تغيير قيم الصفات و الخصائص هذه نحصل على أشكال و صور مختلفة من كل شيء من هذه األشياء. ✓ هذه األشكال هي الكائنات فمثال: ▪ صنف الكراسي بتغيير الصفات التالية نحصل على كائن جديد: ❖ اللون :أحمــر ❖ المادة :خشب ❖ الحجم :وسط
ما هي األصناف ( )Classesو الكائنات ()Objects؟
ما هي األصناف ( )Classesو الكائنات ()Objects؟
تدريب ذاتي 1
في بيتك يوجد العديد من األصناف و الكائنات استخرج خمس منها مع التوضيح بالمثال الصنف و الكائنات المنبثقة منه.
كيف أفكر في صناعـة صنفــًاجديدًا ؟ ✓ دائما عند صناعة صنفــًا جديدًا ابدأ بالتفكير في هذا األمر من منطلق الرسم التالي ،و أن أي شيء له صفات و له سلوك لتقوم بعد ذلك بتمثيل هذه األمور على صفحة البرمجة. صفات Attributes
كل واحدة يقابلها متغير داخل الـ Class
أي شيء Any Thing
معلومة مفيدة
سـلوك Behavior
كل واحد يقابله دالة داخل الـ Class
الصنف الجديد يعامل معاملة األنواع في لغة البرمجة و بالتالي يمكنك تعريف متغيرات ( )Objectsمنه و كذلك تعريف مصفوفة من نوعه و هكذا ...
هكذا أبني :Class كلمة محجوزة تعبر عن تعريف الـ Class
اسم الـ Classو يشترط في تسميته ما يشترط لتسمية المتغيرات { Access_modifiers class class_name { )(Access_modifiers class_name } هذه الدالة تسمى Constructor و هي الزمة لبناء و استخدام كل Class و اسمها مطابق السم ال Classتماما
تمرين ذاتي
ارجع لكافة األمثلة التي أخرجتها من غرفتك و طبق عليها هذه الشريحة
}
هذا أصغر Class
هذا الـ testclassيقوم فقط بإظهار رسالة تعريفية عنه
هذا الـ Classالرئيسي و منه يتم استدعاء ال testclassو بهذا فقط يتم التفاعل و االستفادة من testclass
الناتج و تالحظ فيه الرسالة المكتوبة في testclass
تدريب : 1بناء و استخدام الـ Classes ✓ انشيء نوع جديد باسم Studentتتمكن من خالله من تمثيل أي طالب بالكلية مع توفير الدوال التي تمكننا من التعامل مع بياناته.
التفكيــر :بناء و استخدام الـ Classes
التخطيط :بناء و استخدام الـ Classes
تخطيط التعامل بين وحدات المشروع
تخطيط عمل المشـروع Main
Student : 1يقوم بإنشاء كائنات من
Class
Class هذا الـ Classيقوم بتمثيل الطالب بمعلوماته كاملة و هو مجرد كائن برمجي ال حياة فيه و إنما مجرد تخطيط و تمثيل
هذه الكائنات ( )Objectsالتي تم إنشاءها من الـ Classو هي كائنات حقيقة تحتوي على بيانات لتصف طالب معين و يتم إنشاءها داخل Class آخر غير الذي تم اشتقاقها منه
Obj3 Obj4
Obj1 Obj2
التنفيذ :بناء Student Class هذه المتغيرات المحلية الخاصة بالـ Class و التي تمثل صفات هذا الـ Class و يكون لها حدود للمشاهدة من خالل استخدام Access Modifiers
Instance variable
Constructor
هذه دالة بدء ال Classو التي من خاللها يتم إعطاء قيم بدائية للكائنات Objectsالتي يتم إنشاءها من هذا الـ Class و مثلها مثل كافة الدوال يمكن أن يتم إنتاج صور متعددة منها كما تشاهد
Constructor
التنفيذ :بناء Student Class هذه دالة لطباعة بيانات الكائنات التي سيتم إنشاءها من هذا الـ Class
هذه دالة لتعديل اسم أو رقم الكائنات التي سيتم هذا من إنشاءها ال Classعلما بأن لها صور متعددة الختالف طريقة التعديل
Method
Overloaded Method
التنفيذ :إدارة Student Classمن خالل Classآخر بهذه الجملة يتم إنشاء كائن جديد من Studentاسمه st1 معتمدًا على القيم االفتراضية الموجودة داخل Student بعد ذلك يتم التعامل مع st1
بهذه الجملة يتم إنشاء كائن جديد من Studentاسمه st2مع إعطاءه قيم من خالل استخدام الـ Overloaded constructor بعد ذلك يتم التعامل مع st2كتعديل البيانات أو طباعتها
تدريب ذاتي 2
انشيء نوع جديد باسم carتتمكن من خالله من تمثيل أي سيارة في بيئتك مع توفير الدوال التي تمكننا من التعامل مع بياناته .
تدريب : 2بناء و استخدام الـ Classes ✓ انشيء نوع جديد باسم Accountتتمكن من خالله من تمثيل أي حساب بنكي مع توفير الدوال التي تمكننا من التعامل مع بياناته.
تخطيط التعامل بين وحدات المشروع
تخطيط عمل المشـروع Main
Account . 1يقوم بإنشاء كائنات من
Class
Class هذا الـ Classيقوم بتمثيل الطالب بمعلوماته كاملة و هو مجرد كائن برمجي ال حياة فيه و إنما مجرد تخطيط و تمثيل
هذه الكائنات ( )Objectsالتي تم إنشاءها من الـ Classو هي كائنات حقيقة تحتوي على بيانات لتصف طالب معين و يتم إنشاءها داخل Class آخر غير الذي تم اشتقاقها منه
Obj3 Obj4
Obj1 Obj2
ما هي الـ Access modifiers؟ ✓ : Access modifiersهي مجموعة من الكلمات المحجوزة Keywordsيتم من خاللها التحكم في التفاعل مع المتغيرات و الدوال. ✓ و هي ثالثة: 1. public 2. private 3. Protected ✓ و هي البد أن تسبق أي عنصر من عناصر الصنف membersو الصنف ذاته Class
تأثير الـ public Access modifier؟ ✓ : Public Access modifiersالعنصر الذي يسبق تعريفه Publicيعني أن هذا العنصر متاح استخدامه و التعامل معه من كافة األصناف الموجودة في هذا المشروع و بالتالي فإن أيضـًا أي كائن يتم اشتقاقه من هذا الصنف يمكنه التعامل مع هذا العنصر. هذا يعني أن الـ Classالذي اسمه Studentيمكن مشاهدته داخل المشروع الموجود هو بداخله
هذا يعني أن الـمتغيرات هذه ال يتم مشاهدتها إال داخل هذا الصنف و بالتالي عند إنشـاء كائن منه فإنه ال يمكنه مشاهدتها .
هذا يعني أن الـدالة()constructor التي اسمها Studentيمكن مشاهدتها داخل المشروع الموجوده هي بداخلهـا و بالتالي يمكن االستفادة منها عند إنشـاء أي كائن من هذا الـ Class
تأثير الـ public Access modifier؟ هذا الـمشـروع الذي يضم أكثر من Classو فيه الـ classاألساسي
الننا قمنا بتعريف الصنف studentمن نوع publicفإننا رأيناه في صنف آخر ينتمي لذات المشروع كما ترى .
تأثير الـ private Access modifier؟ ✓ private Access modifiersالعنصر الذي يسبق تعريفه privateيعني أن هذا العنصر متاح استخدامه و التعامل معه فقط للعناصر الموجودة داخل الصنف و ال يمكن مشاهدته و التعامل معه إطالقا خارج هذا الصنف.
الحظ عند إنشاء كائن من الصنف student فإنك لم تشاهد أي من العناصر التي تم تخصيص رؤيتها من خالل Private
تأثير الـ private Access modifier؟ ✓ بحثـــًا عن األمان و عن تقنين استخدام العناصر الموجودة في الكائنات فإننا نقوم بوضع المتغيرات (الصفات) من نوع privateو بالتالي فالوصول لهذه الصفات و تغيير قيمها ال يمكن أن يحدث مباشرة و بالتالي نقوم بتوفير دوال لتغيير قيمها أو الحصول على قيمها. : Set Methods .1و هي دوال تستخدم من أجل وضع قيمة لمتغير معين و االسم Setليس فرضـًا أو إلزامـًا و إنما هو اسم يوضح الوظيفة. :Get Methods .2و هي دوال تستخدم من أجل قراءة قيمة متغير معين و االسم Getليس فرضـًا أو إلزامـًا و إنما هو اسم يوضح الوظيفة.
؟protected Access modifier تأثير الـ protected العنصر الذي يسبق تعريفهprotected Access modifiers ✓ يعني أن هذا العنصر متاح استخدامه و التعامل معه فقط للعناصر الموجودة داخل )الصنف االبن (أي االبن الذي ورث من االب Parent Class
protected x; private z; public y;
Child Class
protected x; public y; private a;
تدريب : 3استخدام الـ Access Modifiers ✓ انشيء نوع جديد باسم Employeeتتمكن من خالله من تمثيل أي موظف مع توفير الدوال التي تمكننا من التعامل مع بياناته.
تدريب : 3استخدام الـ Access Modifiers ✓ قم بإعادة برمجة جميع األنواع السابقة مع االستفادة من مفهوم Access Modifiersو من مفهوم Set and get Methods