#تابعونا_مع_جافا_من_الصفر #الدرس_الخامس_عشر الفصل الثاني البرمجة بالكائنات الموجهة object Oriented Programs #شرح سعد…

#تابعونا_مع_جافا_من_الصفر
#الدرس_الخامس_عشر
الفصل الثاني البرمجة بالكائنات الموجهة object Oriented Programs
#شرح سعد الضبي
لمشاهدة الدرس فيديو تفضل إلى الرابط التالي
http://bit.ly/2vftjpJ
• الوراثة inheritance
• كما هو في العالم الواقعي أن يرث الإبن بعض من صفات أبيه أو أمه مثل الطول – الحجم – لون الشعر
يجب التركيز على هذه النقطة (الولد يرث بعض الشبه من أبيه مع الإحتفاظ بخصائض تميزه عن أبيه )
– في عالم object Oriented يمكن لكلاس ان يرث من كلاس أخر
يسمى الكلاس الوارث الإبن والكلاس الذي تم التوريث منه يسمى الكلاس الأب
– يستطيع الكلاس الإبن الوصول إلى كافة المتغيرات والدوال الموجودة في الكلاس الأب ماعدا تلك الدوال والمتغيرات المحمية المعرفة من نوع private
لأنه كما قلنا مسبقاً بأن الدوال والمتغيرات المحمية هي خاصة بالكلاس نفسه وللوصول إليها هناك طرق تكلمنا عنها في الدرس الرابع عشر
• ماهي الفائدة من الوراثة
بشكل عام نستفيد من الوراثة هو تنظيم وترتيب البرنامج واختصار الكود فإذا كان هناك متغير سوف نستخدمه في أكثر من كلاس يمكن تعريف هذا المتغير في الكلاس الأب حتى يمكن إعادة إستخدامه من كافة الكلاسات الأبناء
نفس الشيء إذا كان هناك دالة ونريد إستخدامها في أكثر من كلاس نكتفي بتعريفها في الكلاس الأب حتى يمكن إعادة إستخدامه من كافة الكلاسات الأبناء وبذلك تكون عرفت المتغير والدالة مرة واحدة وحررت مساحة في الذاكرة وحافظت على سرعة برنامجك وخفته
• مثال
لنفترض أن هناك مصنع سيارات يصنع أربعة أنواع من السيارات
نوع A نوع B نوع C نوع D
من الطبيعي أن هذه الأنواع تشترك في كثير من الصفات مثل
– اللون
– الحجم
– السرعة
ولكنها تختلف في الطراز فكل سيارة لها طرازها الخاص
في هذه الحالة هل سنقوم بتعريف متغيرات اللون والحجم والطراز والسرعة في كل كلاس !
طالما أن الكلاسات تشترك في هذه الصفات اللون والحجم والسرعة يمكننا أن نعرفها في كلاس يسمى الكلاس الأب ونجعل بقية الكلاسات يرثون هذه الصفات من الكلاس الأب حتى يستطيعون إستخدام متغيرات اللون والحجم والسرعة
وبذلك نكون عرفنا هذه المتغيرات اللون والحجم والسرعة مرة واحدة بدلاً من تعريفها أكثر من مرة وبهذا نكون قد قللنا من عدد المتغيرات وحررنا مساحة في الذاكرة وساعدنا على سرعة وخفة نظامنا وهذه من أهم فوائد الوراثة
• طريقة الوراثة في جافا
إذا أردنا من الكلاس B أن يرث من الكلاس A نستخدم الأمر التالي
Class B extends A
الآن يستطيع الكلاس B الوصول إلى كافة المتغيرات والدوال الموجودة في الكلاس A وإعادة إستخدامها ماعدا تلك الدوال والمتغيرات المعرفة من نوع private كما تحدثنا سابقاً
في البرنامج التالي لدينا التالي
1- كلاس car وهو الكلاس الأب ويحتوي على المتغيرات التالية
int size,speed;
String color;
قمنا بتعريف هذه المتغيرات في الكلاس الأب لأننا سنحتاج إعادة إستخدامها في بقية الكلاسات الأبناء
2- كلاس اسمه Car_Model_A وهو يرث من الكلاس الأب car بواسطة أمر الوراثة extends بالشكل التالي
Car_Model_A extends car
3- لدينا كلاس اسمه Car_Model_B وهو يرث من الكلاس car بنفس الطريقة التي ورث منها الكلاس Car_Model_A
استفدنا من عملية الوراثة اننا قمنا بتعريف المتغيرات المشتركة في الكلاس الأب car وبذلك عرفناها مرة واحدة واختصرنا الجهد والكود وحررنا مساحة أكثر في الذاكرة لان كل متغير نقوم بتعريفه يقوم بحجز مساحة في الذاكرة
في البرنامج الرئيسي قمنا بإنشاء كائن object من الكلاس Car_Model_A اسمه A بالطريقة التالية
Car_Model_A A=new Car_Model_A();
واستطعنا بواسطة هذا الكائن الوصول إلى المتغيرات الموجودة في الكلاس الأب car
بعد ذلك قمنا بإسناد قيم إلى المتغيرات
A.name=”EE1454″; A.color=”Red”;A.size=400;A.speed=380;
وبنفس الطريقة قمنا بإنشاء كائن من الكلاس الأخر اسمه B بالطريقة التالية
Car_Model_B B=new Car_Model_B();
واستطعنا بواسطة هذا الكائن الوصول إلى المتغيرات الموجودة في الكلاس الأب car
– بعد ذلك تم إسناد قيم إلى المتغيرات الموجودة في الكلاس الأب والوصول إليها مباشرة
ثم إستدعاء دالة الطباعة الموجودة في الكلاس لتطبع البيانات التي قمنا بإسنادها إلى المتغيرات الموجودة في الكلاس الأب



Source

17 تعليق

  1. السلام عليكم شكرا على المجهود الطيب الذي تبذله، اتمنى لو تكتب لنا نبذه مختصرة عن بداياتك في هذا المجال و عن اول مشروع برمجي عملت فيه و عن التحديات التي واجهتك فمثل هذه القصص محفزه و اغلبها يكون لمطورين اجانب

  2. سلام احتاج الى مساعدة
    عندما احمل الملف من الرابط up.top4.topياتي اسم الملف على شكل رموز طويلة لكن عندما افك الضغط على الملف اجده بالعربية قبل ذالك ياتي برموز
    الحل من فضلكم

  3. Balbalbal
    1extend10
    Donkey extend animal
    You extend donkey
    Hahahaha

  4. Amine Mohamed Tahiri

  5. Saoussene Toubal Guzel Rania

  6. محمد معروف

  7. انواع الوراثة

    الوراثة العامة
    الوراثة العامة و الاعظاء المحمية
    الوراثة المحمية

  8. حلو جداً

  9. MiDo KhaLed C# خلينا احنا في 😂

  10. Fotoun Bt Salwa Khit

  11. محمد بركة

%d مدونون معجبون بهذه: