التوارث
ويترتب على مفهوم الفئات مفهوم اخر هو التوارث inheritance فمن معارفنا العامة يمكن ان تضم فئة ما ” فئات جزئية subclasses ” تنتمى إليها . ففئة الحيوانات تضم الثدييات والبرمائيات واللافقاريات .. الخ , وفئة المركبات تضم السيارات والباصات وغيرها .
والسمة المميزة لهذه العلاقة ان كل فئة جزئية تحمل كافة صفات الفئة الاعلى , وتحمل ايضا صفات تميزها هى عن بقية الفئات الجزئية الاخرى . فالسيارات والباصات لها عجلات ومحرك , لكن كل نوع له سماته التى تميزه عن النوع الاخر . ويمثل الشكل 1 – 6 هذا المفهوم , ومنه ترى ان كافة الكائنات تحمل الصفتين أ و ب , بينما تحمل كل فئة جزئية صفاته الخاصة بها .
وبنفس المفهوم , تتفرع الفئات إلى فئات جزئية Subclasses وتسمى الفئة الاولى الفئة الاصلية او الاساسية base class بينما تسمى الفئة الجزئية فئة مشتقة derived class .
ولتنتبه إلى عدم الخلط بين العلاقة بين الكائن وفئته من ناحية , والفئة الاصلية والفئة الجزئية من ناحية اخرى , فالكائن , والذى يكون مخزنا فى ذاكرة الحاسوب , يكتسب كافة خصائص الفئة التى ينتمي اليها , اما الفئة الجزئية فتكتسب كافة الصفات التى للفئة الاعلي , وصفات اخرى ذاتية لها .
تكرار الاستخدام
ما ان يتم صياغة فئة ما وبعد تصحيحها والاطمئنان على سلامتها يمكن ان توزع على من يود استخدامها من المبرمجين . ويسمى ذلك تكرار الاستخدام reusability ويشابه ذلك الدوال المكتبية فى اللغات التقليدية .
إلا انه فى اللغات الكائنية تضفى خصيصة التوارث على تكرار الاستخدام توسعا هاما فالمبرمج حيث يحصل على الفئة يمكنه , دون ان يعدل فيها ان يضيف لها ما يشاء من خواص اضافية , اى يشتق منها فئات جديدة .
فعلى سبيل المثال , تصور انك قمت بصياغة فئة ( او حصلت عليها ) خاصة بقائمة كتلك التى تستخدم فى النوافذ ورايت انها تفى بغرضك تماما . الا انك اردت ان تعطي وميضا فى حالات معينة فباضافة خاصية الوميض للفئة التى حصلت عليها يكون لديك فئة مشتقة تقدم لك الامكانيات الاصلية والامكانيات التى اضفتها .
وتعتبر سهولة تكرار الاستخدام التى تتميز بها البرمجة الكائنية خاصية هامة , بل لعلها اهم الخصائص , لهذا النوع من البرمجة , فالعديد من الشركات يمكنها ان تستخدم فئات تمت صياغتها فى مشاريع سابقة , وتكون بالتالى بمثابة زيادة فى عائدات تلك المشاريع .
خلق انواع جديدة من البيانات
من بين فوائد البرمجة الكائنية انها تتيح للمبرمج ان يخلق انواعا جديدة من البيانات بطريقة سهلة . لنفرض امك تتعامل مع نقاط ذات بعدين ( كأن تكون نقاطا على مستوى او مواضع تحدد بخطوط الطول والعرض ) فى برنامجك , وتود ان تعبر عن العمليات الحسابية الجارية على تلك النقاط بالشكل التالي :
Position 1 = Position 2 + origin
حيث تكون المتغيرات المذكورة ازواجا من قيم عددية . فبانشائك نوعا من الفئات تسمية Position يتميز بانه يعرف بقيمتين , يمكنك تعريف المتغيرات المذكورة على انها تنتمي إلى تلك الفئة . انك تكون بذلك قد تمكنت من خلق نوع جديد من البيانات . والكثير من خصائص السى بلس بلس تهدف إلى تيسير خلق المتغيرات الجديدة .
تعدد الهيئات وزيادة التحميل
لاحظ ان المؤثرات الحسابية مثل = او + فى المعادلة المبينة سابقا لا تعمل بطريقتها الطبيعية حين تتعامل مع متغيرات مفردة القيمة . فكيف يعلم البرنامج بطبيعة التاثير المطلوب على متغيرات ليس مالوفة فى اللغة , بل قام المبرمج بتخليفها ؟ المفروض ان يبين المبرمج كيفية تاثير هذه المؤثرات على هذه الانواع الجديدة من المتغيرات , وتصبح هذه المؤثرات من الدوال الخاصة بالكائنات من فئة Position .
وتسمى امكانية استخدام مؤثرات بطريقة خاصة تخالف الطريقة الطبيعية لها تعدد الهيئات Polymorphism فالامر بمثابة ان ياخذ المؤثر هيئات تختلف باختلاف البرامج وحيث يستخدم المؤثر مثل = او + بطريقة خاصة يقال انه قد حدث زيادة تحميل Overloading على هذا المؤثر , وزيادة تحميل المؤثرات احد صور تعدد الهيئات وهى ايضا من السمات المميزة للغة السى بلس بلس .
لغة السي ولغة السى بلس بلس
لغة السى بلس بلس متطورة عن السي وبعبارة مباشرة نقول انها فئة جزئية منها , بمعنى ان اغلب الصيغ الصحيحة فى لغة السي صحيحة ايضا فى لغة السى بلس بلس واغلب التجديدات فى لغة السى بلس بلس هى لادخال المفاهيم الكائنية كالكائنات والفئات ( كانت لغة السى بلس بلس تسمى سابقا لغة السي ذات الفئات ) الا ان السى بلس بلس تتضمن خصائص برمجية متطورة بالفعل منها اساليب جديدة للادخال والاخراج وطرق كتابة الاوامر ويبين الشكل 1 – 7 العلاقة بين اللغتين .
والواقع ان الفرق بين اللغتين اكبر مما تتخيل فرغم انه بامكانك كتابة برنامج بلغة السى بلس بلس تبدر وكانها بلغة السي , فانه لا احد يفعل ذلك بل ان كتاب برامج السى بلس بلس يركزون على خصائص متميزة بلغة السي اكثر مما يفعل كتاب السي التقليديون .
واذا كنت عالما بلغة السي فان لك سبقا فى المضمار ( ولكن قد تكون مكتسبا لعادات سيئة ايضا ) ولكنك ستجد اكثر المواد المعروضة جديدة بالفعل .
ارساء الاساس
هدفنا تمكينك من الكتابة بلغة السى بلس بلس باسرع ما يمكن , ولكن كما لاحظت فان هذه اللغة متطورة عن السي التقليدية , ومن ثم فانه بين السطور ستجد بعضها من التقاليد الموروثة عن البرمجة الاجرائية وعلى ذلك فالفصول من الثالث إلى السادس ستكون حول الخصائص الاجرائية للسي ++ والتى توجد اغلبها فى السي . فسوف تعلم عن المتغيرات والادخال والاخراج والدوال وعن الوسائل المتحكمة فى سير البرنامج كالقرارات والدورات Loops وعن الدوال ذاتها وسوف تعلم عن الهياكل Structures حيث ان صيغ الفئات هى نفسها صيغ الهياكل واذا ما كنت تعرف بالفعل لغة السي فقد تساورك رغبة فى تخطي هذه الموضوعات ولكن هناك الكثير من الاختلافات بعضها واضح وبعضها خفى . ولذا فنصيحتنا لك ان تقرأ هذه الفصول وتمر مر الكرام على ما تراه مالوفا لك , وتركز على نقاط الاختلاف بين اللغتين .
اما العرض الفعلي للبرمجة الكائنية فيبدا من الفصل السابع حينما نبدا فى عرض مفاهيم الكائنات والفئات ومن هذه النقطة تبدأ الامثلة عن البرمجة الكائنية .
موجز
الفكر الكائني فى البرمجة هو نوع من التنظيم , التركيز فيه على كيفية تصميم البرامج وليس تفاصيل عملها , وبالتحديد فالبرامج الكائنية تدور حول مفهوم الكائنات , وهى العنار التى تضم كلا من البيانات والدوال التى تعمل عليها وتعتبر الفئات بمثابة الموصفات لمجموعات الكائنات .
ولغة السى بلس بلس هى فئة جزئية من لغة السي تضيف اليها امكانات جديد البرمجة الكائنية كما تضيف ايضا خصائص جديدة . وعلاوة على ذلك فان التركيز مختلف بين اللغتين فهناك من الخصائص ما يندر استخدامه فى احدى اللغتين بينما يكثر فى الاخرى والنتيجة هو الحصول على لغة مغايرة بدرجة مدهشة .
ولسوف تكون المنافسة التى كانت عامة فى هذا الفصل اكثر تفصيلا فى الفصول التالية وفى مسيرتك فى تعلم لغة السى بلس بلس ربما تحتاج بين الحين والاخر ان ترجع إلى هذا الفصل .
اسئلة
1- الباسكال والبيزك والسي لغات …………… بينما السى بلس بلس لغة ……………..
2- الموظف فى برنامج كائنى عن العاملين هو :
أ – كائن
ب – فئة
ج – دالة
د – عنصر بيانات
3- المكونان الاساسيان للكائن هما ……… و …………….
4- فى السى بلس بلس تسمى الدالة المحتواه فى فئة من الكائنات
أ- دالة منتمية
ب- مؤثر
ج- وحدة بنائية
د- اجراء
5- حماية البيانات من ان تصل اليها دالة غير مخول لها بذلك يسمى ………..
6- اى من الاسيباب التالية مبرر قوي لاستخدام أسلوب البرمجة الكائنية ؟
أ- لك ان تعرف البيانات الخاصة بك .
ب- عبارات البرنامج ابسط منها فى البرمجة الاجرائية
ج- البرنامج الكائنى يمكن ان يعطي وسيلة لمعرفة اخطائه بنفسه
د- من الايسر تصور البرامج الكائنية
7- ” السيد ” جونز ” بالنسبة لبرنامج كائنى هو :
أ- دالة
ب- عنصر بيانات
ج- فئة
د- كائن
8- صواب ام خطأ , برنامج السى بلس بلس لا يختلف عن برنامج السي التقليدية الا فى تفاصيل الصياغة .
9- يسمى دمج البيانات مع الدوال فى وحدة واحدة …………
10- يقصد بتعدد الهيئة :
أ- اشتقاق فئة من فئة اخرى .
ب- اعادة استخدام الفئات فى مواضع اخرى .
ج- امكان استخدام المؤثرات او الدوال بصور اخرى
د- امكانية وضع بيانات جديدة
11- صواب ام خطأ ؟ يمكنك بمجرد ان تنظر لاسطر البرنامج ان تعلم ان كان مكتوبا بلغة السي او السى بلس بلس
12- زيادة التحميل هو صورة من صور ………..
13- المفاهيم الجديدة فى السى بلس بلس
أ- تطوير للغة السي التقليدية
ب- هامة لادخال وتطبيق المفاهيم الكائنية
ج- تبسط من صياغة البرنامج
د- تجعل البرامج اكثر وضوحا
الكلمات التي استخدمها الزوار القادمون من محرك البحث
- مفهوم الوراثة في لغة c (113)
- الوراثة في لغة c (12)
- مثال على الوراثة في c (10)
- الوراثة المتعددة c (7)
- ماهي الوراثة في لغة السي (4)
- مسائل الوراثة في الجافا (4)
- مشا ريع السي بلس بلس باستخدام الوراثه (3)
- امثله توضيحيه عن الوراثه البرمجه بالسي بلاس الکائنیهo o p الوراثه (3)
- الوراثة في لغة السي بلس بلس (3)
- الوراثه المتعددة في لغه السي بلس بلس (3)
- ما مفهوم الرواثه في البرمجه الكائنيه بلس بلس (2)
- ماهي انواع الوراثة العامة في C (2)
- كيف تتم عمليه الوراثة في السي بلس بلس وما الأشياء التي لا تراثها فصيله الوارثه (2)
- الوراثه في السي بلس بلس (2)
- الوراثة في لغة السي بلس بلس مميزاتها وعيوبها (2)
- خصائص الفئة التي تنتمي اليها الفراشة (2)
- الوراثة المتعددة في لغة السي بلس بلس (2)
- مميزات التوارث في سي بلس بل (2)
- الارث و التراكيب في لغة سي بلس بلس (2)
- برنامج بالغه السى بلس بلس يوجد فيه كلاسات وبوبلك (2)
- ملخص كامل عن الوراثة في السي بلس بلس (2)
- شرح فيديو علي الوراثه بي لغه السي (2)
- ما هو تعريف الوراثة في البرمجة (1)
- ما مفهوم تعدد الاشکال وامثلة عن والوراثه في البرمجه c (1)
- لغة السي الوراثة (1)
- داله الوراثه في البرمجه (1)
- كيف تتم عملية الوراثه في لغة ال c (1)
- م هي الواراثه ف البرمجة (1)
- لقة c (1)
- علم الوراثه في لغه c (1)
- كتاب وراثة في لغة الc (1)
- كتب الكلاسات في لغه السي (1)
- كتب الوراثه في لغه ال (1)
- كيف تتم عملية التوريث في السي (1)
- كيف تتم عمليه الإرث في السي بلس بلس (1)
- ما هو تعريف الوراثة في لغة السي (1)
- مميزات الوراثه في السي بلس بلس (1)
- ملخص في لقة c (1)
- مقومات لغة الc (1)
- مفهوم الوراثه بلفه السي بلس بلس (1)
- مفهوم الوراثه امثله عليهابالسي بلس بلس (1)
- مفهوم الوراثه البرمجه الكائنيه بالسي بلس بلس (1)
- مفهوم الوراثة في السي بلص (1)
- مفهوم الوراثة المتعددة في البرمجة الشيئي (1)
- مفهوم الوراثة jوالوراثة المتعددة في لغة c (1)
- مفهوم inheritance (1)
- مسائل محلوله عن الوراثه بالسي بلس بلس (1)
- مرجع مفهوم تعدد اشكال في لغة البرمجة (1)
- مثال لتوريث في السي بلص بلص (1)
- مثال في الوراثه المتعددة سي بلس (1)
- مثال على الوراثه فی لغه السی بلس (1)
- ما هي الأشياء التي لا ترثها الفصيله الوراثة في السي بلس بلس (1)
- وراتة كلاس بلغة سي بلس بلس (1)
- تعريف الوراثة في لغة C (1)
- الوراثة في لغة c (1)
- الوراثة بلغة c (1)
- الوراثة في السي بلس (1)
- الوراثة في السي بلس بلس (1)
- الوراثة في سي بلس بلس (1)
- الوراثة في لغة البرمجة (1)
- الوراثة في البرمجة (1)
- الوراثةفي لغة السي بلس بلس (1)
- الوراثةفي لغةC (1)
- المكدسات في السي بلس (1)
- التوارث في البرمجه الهدفيه (1)
- اعادة الصياغة في البرمجة الكاءنية باستخدام لغة سي بلس بلس (1)
- الوراثه في لغة ال C (1)
- تعريف الوراثه في اساليب ال (1)
- علم الوراثه في لغة الc (1)
- كل ما يتعلق الوراثة في c (1)
- هل توجد وراثه في لغه c (1)
- www الوراثة في لغة السي بلس بلس (1)
- أمثلة شاملة عن الوراثة بلغة c (1)
- أمثله الوراثة في سي بلس بلس (1)
- الوراثه المتعددة في لغه السي بلس بلس بالانجليزي (1)
- الوراثه المتعدده في السي بلس بلس (1)
- بحث بعنوان لغات السي بلس (1)
- بحث عن التوارث في البرمجه الهدفيه (1)
- بحث عن الوراثة بلغه سي (1)
- بحث عن الوراثه في لغه السي بلص بلص (1)
- برامج ع الوراثه بالغة c (1)
- برامج في الوراثه سي بلس (1)
- برامج للوراثة في السي بلس بلس (1)
- برنامج الوراثة في لغه c (1)
- انواع الوراثه في السي (1)
- انواع الوراثه في البرمجه الكائنيه (1)
- انواع الوراثة في? الوراثة في البرمجة الكائنية (1)
- الوراثه فيلغة الc (1)
- الوراثه فی أسالیب البرمجه (1)
- الُاشِيَاء الُتْيَ لُاتْرَثُُها الُفَصّيَلُُه الُوَارَثُُه (1)
- امثله عن الوراثة سي بلاس (1)
- امثله لبرنامج الوراثه c (1)
- امثله محلوله عن الوراثه فی السی بلاس (1)
- امثله محلوله لمفهوم الوراثه البرمجه الكائنيه بالسي بلس بلي (1)
- انواع الوراثة في لغة c (1)
- برنامج بل كلاسات سي بلس (1)