العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 02-19-2010, 08:16 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس السابع عشر : مقدمة إلى مبادئ Oop دورة .net 2008

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

جميع لغات البرمجة التي تطبق مبادئ ال OOP لا بد ان تتعرض للنقاط الثلاث التالية :

Encapsulation
Inheritance
Polymorphism

في هذا الدرس سنتعرف على مقدمة ضرورية لكل منهم ، ثم سنعود مرة أخرى للشرح التفصيلي لكل منهم في دروس قادمة .

Encapsulation :

يقصد بال Encapsulation هو اخفاء وضم البيانات والأكواد المختلفة واظهارها في النهاية للمستخدم على شكل Black Box ، حيث ستجد في النهاية دالة باسم PrintReport ، في الواقع لا يهمك ما هو الكود الموجود داخلها ، حيث يكفيك استدعاءها لتعمل لديك دالة طباعة التقارير .

تستفيد ايضاً من هذه الخاصية في حالة العمل الجماعي على المشروع ، في الحالة العمل باسلوب Structured ستجد جميع الكود في مكان واحد ، اما مع ال Encapsulation في ال OOP فسيكون كل جزء من العمل مغلقاً على نفسه ويتم التواصل بينهم البعض عن طريق Objects مختلفة ، وهذا ما يساهم في تسهيل تركيب العمل ، تسهيل اكتشاف الأخطاء .

Inheritance :

أو الوراثة ، ويقصد بها عمل نسخة جديدة من الكلاس تحتوي على نفس خصائصه من اجل تطويرها أو تعديل بعض الخصائص ، لنفترض مثلاً ان لدينا كلاس (سيارة) يحتوي على اسم السيارة وتاريخ صنعها مثلاً .

والآن نريد القيام بعمل كلاس للسيارات ال BMW مثلاً ، في هذه الحالة من الخطأ ان نقوم بعمل كلاس منفصل لها ، ولكننا نستطيع اشتقاق كلاس جديد من الكلاس Car مع اضافة خاصية isSport للكلاس المسمى BMW ، الهدف من ذلك اننا سنجد خصائص مشتركة بين ال Car و ال BMW ، ايضاً سنضطر يوماً لاضافة كلاس لل GMC والذي سيحتوي بدوره على بيانات مشتركة .

السبب الآخر لو قمنا باضافة عنصر جديد مثل countofdoors لكل السيارات ، فهل سنقوم بالتعديل في جميع الكلاسات ، في حالة قمنا بعمل اشتقاق من الكلاس Car فإننا نستطيع التعديل فيه فقط لتطبيق التعديلات .

ربما لا تظهر الأهمية في الكلاسات الصغيرة ولكن تستطيع تخيل حجم الفائدة في حالة وجود كم كبير من البيانات .

يتم تعريف العلاقة Inheritance باسم is a ، حيث ان BMW is a car ، ايضاً في حالة وجود كلاس للاشكال وكلاس آخر للدائرة مثلاً فإن Circle is a shape .

هناك نوع آخر من العلاقات بين ال Classes وهي علاقة has a وتسمى باسم aggregation ، في هذه الحالة يكون الكلاس الثاني محتوي على الكلاس الأول ، مثلاً لو كان لدينا كلاس من اجل عجلات السيارة باسم Wheels ، ستكون Car has a wheel .

Polymorphism :

المبدأ الأخير من مبادئ OOP هو السماح بكتابة كلاس بدواله بدون اي Implementation ، والسبب هو اجبار اي مستخدم يقوم باشتقاق الكلاس بعمل implementation لهذه الدوال بما يضمن تشابه الاسماء ، ابسط مثال على ذلك كلاس Shape ، حيث يمكننا تعريفه بالشكل التالي :

c#:
كود PHP:
class Shape
{
public 
void Draw()
{
}
public 
void GetSize()
{
}


VB.net:
كود PHP:
Class Shape 
    
Public Sub Draw() 
        
    
End Sub 
    
    
Public Sub GetSize() 
        
    
End Sub 
    
End 
Class 
في هذه الحالة يعرف ال Class باسم Abstract Class ، توفر C# ايضاً مبدأ ال Interface والذي يشبه كثيراً ال Abstract Class ولكن مع فروقات سنتعرف عليها في حينها .

في الكلاس السابق فإن كل كلاس ( دائرة ، مربع ، مثلث ) سيتم اشتقاقه من هذا الكلاس سيكون مجبراً على كتابة اكواد الرسم وحساب المساحة لكل منهم . يمكن عمل ذلك بطريقة أخرى عبر ال OverRidding ولكن مع الاختلاف في احتمالية وجود default Implementation .

المبادئ التي تعرفنا عليها اليوم سيتم شرحها تفصيلاً في دروس قادمة ، ولكن كانت هذه المقدمة ضرورية للمتابعة مع بعض العناصر الأخرى ضمن حلقات هذا الأسبوع .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس السادس عشر : ال OverLoading دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 1 03-02-2011 03:43 PM
الدرس الرابع عشر : this دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 07:58 PM
الدرس الثالث عشر : مقدمة إلى الفئات Classes دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 07:56 PM
الدرس التاسع : ال Enumeration دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-18-2010 04:27 PM
الدرس السابع : الدوال والطرق .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-17-2010 04:42 PM

استضافة الحياة

الساعة الآن 07:23 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz