mcse
مرحباا بك في منتدى mcse
تشكرك الادارة على هده الزيارة


انضم إلى المنتدى ، فالأمر سريع وسهل

mcse
مرحباا بك في منتدى mcse
تشكرك الادارة على هده الزيارة
mcse
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

مدخل إلى البرمجة الشيئية أو الكائنية التوجّه Object Oriented Programming

اذهب الى الأسفل

مدخل إلى البرمجة الشيئية أو الكائنية التوجّه Object Oriented Programming Empty مدخل إلى البرمجة الشيئية أو الكائنية التوجّه Object Oriented Programming

مُساهمة من طرف Ebisu الأربعاء يونيو 16, 2010 11:55 am

بسم الله
الرحمن الرحيم


خلال الأسطر القليلة التالية،
سنلقي الضوء على مفهوم البرمجة الكائنية أو الشيئة Object

Oriented Programming وهي ما يطلق عليه اختصاراً OOP،
ماهيتها ومميزاتها.

فكّر بالكائنات
Think about Objects:

ستتعرف
في هذا الجزء على أهم المصطلحات
المستخدمة في الـOOP كما ستفهم فكرة الـOOP
إن شاء الله!
لو نظرنا حولنا في عالمنا الحقيقي لوجدنا جميع ما يحيط بنا عبارة عن
"كائنات
Objects": الناس، الحيوانات، النباتات،
السيارات،
الطائرات، البنايات، وحتى الكمبيوترات وغيرها. هذا هو معنى كلمة "كائن
Object"، ومن الممكن أن نطلق نفس المصطلح
على أي
ممثل لأي فئة، فنطلقه على الفراولة لأنها تمثل أحد الفواكة، أو نطلقه
مثلاً على
الطاووس لأنه يمثل أحد الطيور... وهكذا.
ويمكننا تصنيف الكائنات إلى صنفين:



  • كائنات نشطة
    (حية)
    Animate Objects
    : وهي التي نحس فيها فنجد لها حركة ونشاط.


  • كائنات غير نشطة (غير حية)
    Inanimate Objects
    : هي التي لا نلاحظ
    لها نشاط
    أو حركة أو وقع أينما وجدت.



وجميع
الكائنات بصنفيها لها:


  1. خصائص Attribute
    مثل: الحجم، اللون، الوزن، الشكل...ألخ.


  2. سلوك Behavior

    فمثلاً: الطفل (كائن) يبكي، وينام، ويمشي، ويأكل (سلوكيات).



الإنسان
وخصوصاً المبرمج يتعلم عن الكائنات
بمعرفة خصائصها، وملاحظة (تجربة) سلوكها، فمن الممكن أن يكون لكائنات
مختلفة
نفس الخصائص وسلوك متقارب.

البرمجة
الشيئية Object
Oriented Programming تقوم بنمذجة Modeling
كائنات العالم الحقيقي في برنامج نظير
software counterpart.

هذا البرنامج يحمل إيجابيات العلاقات بين الفئات classes

relationships حيث أن أي كائن من أي فئة يحمل جيمع مميزات وصفات
characteristics هذه الفئة أو بالأحرى يرثها
لأنه
ممثل لفئته. كما أن الفئات الجديدة -تسمى فئة فرعية
subclass
- ترث صفات الفئات التي أُنتجت وتكونت منها -تسمى
الفئة
الأم superclass- كما يرث الطفل
جينات أبويه.
وهذه الفئة الجديدة والتي تعتبر subclass،
من
الممكن أن تكون superclass لفئات
جديدة أخرى
ينشئها المبرمج.

الـOOP كذلك تقوم
باحتواء البيانات (Data (attributes والطرق (Methods
(behavior في حزمة package هي ما
نطلق عليه
"كائنات Objects"؛ حيث أن بيانات وطرق أي
كائن ترتبط
ببعضها ارتباط وثيق. هذا الكائن يتميّز بخاصية التخفي
Information Hiding نعني بالتخفي هنا أنه بإمكان الكائنات
الاتصال
والتعامل مع بعضها البعض مع عدم معرفة أحدها كيف تكوّن الآخر! أي أن
تفاصيل
التكوين هي المخفيّة حتى عن الكائنات نفسها؛ فمن المؤكد أننا نعرف كيف
نقود
السيارة بكفاءة عالية دون معرفة تفاصيل هندستها. تسمى هذه الخاصية في
البرمجة
بـ
Abstraction
أي تجريد البيانات.

برامج
الجافا جميعها قائمة على برمجة المبرمج
لمجموعة فئات خاصة به تسمى user-defined classes

باستخدام الفئات والمميزات التي توفرها اللغة ومن ثم استخدام هذه
الفئات جميعها
أو بعضها في برامجه Smile
حيث أن كل فئة تحتوي على بيانات data
ومجموعة دوال
functions تقوم بتشكيل هذه البيانات، تسمى
البيانات
في فئات الجافا بـ: instance variable
أو
data member
. ويطلق على الدوال اسم
الطرق
methods.

فأي طلب لأي فئة معرّفة في اللغة كأنواع البيانات مثل
int
يسمى"متغير variable"،
بينما
طلب أي فئة من الفئات التي عرّفها المبرمج user-defined

يسمى "كائن object".

البرمجة الشيئية أو
الكائنية Object Oriented Programming:

عند
حديثنا عن البرمجة الشيئية، نجمل الحديث
في كلمتين: الوراثة وتعدد الأشكال Inheritance
& Polymorphism
، وهما من
التقنيات الفعّالة
للتعامل مع البرمجيات المعقدّة:



  • فالوراثة
    inheritance
    هي شكل للبرامج software

    المعدّة للاستعمال مع الفئات classes
    الحديثة
    والتي أنشئت من فئات موجودة مسبقاً وأخذت عنها خصائصها وسلوكها
    وأضافت إليها
    القدرات التي نحتاج إليها في هذه الفئة الجديدة. الوراثة ماذا تعني
    عملياً؟!
    تعني بالضبط ما الذي تم وراثته و كيف يمكن التعديل عليه وما الذي لا
    يمكن
    وراثته -يتضح ذلك بالأمثلة-. هذه الخاصية توفر الكثير من الوقت
    للمبرمج وتقطع
    عنه أشواطاً في تطوير برنامجه.


  • وتعدد
    الأشكال
    polymorphism
    يسمح لنا بكتابة برنامجنا في صورة قابلة لتغيير
    واسع
    النطاق؛ سواء كان التغيير لفئات موجودة مسبقاً أو تغيير مستقبلي
    لإنتاج برامج
    جديدة. هذه الخاصية تسهل علينا توسيع قدرات نظامنا.



وكما
ذكرنا في الأعلى أن الفئات الجديدة -تسمى
فئة فرعية subclass- ترث صفات الفئات
التي
أُنتجت وتكونت منها -تسمى الفئة الأم superclass-

كما يرث الطفل جينات أبويه. وهذه الفئة الجديدة والتي تعتبر
subclass،
من الممكن أن تكون
superclass
لفئات جديدة أخرى ينشئها
المبرمج.
وهكذا تمتد لدينا سلسلة من الوراثة بين الفئات extends، يحكمها قانون
"الوراثة المفردة Single

Inheritance"
حيث ينص هذا القانون
على:
تنشأ أي فئة فرعية من فئة أم واحدة، فالجافا لا تدعم التوارث المتعدد
multiple inheritance
كالسي++ ولكنها تدعم مفهوم الواجهات
Interfaces
، فنظام الواجهات يساعد الجافا على تحقيق
فائدة
التوارث المتعدد مع عدم وجود الأخطاء المترابطة الناتجة عن هذا التوارث

المتعدد!

تذكر
أن أي كائن ينتمي إلى فئة فرعية فهو
ينتمي إلى الفئة الأم لهذه الفئة الفرعية ويحمل خصائصهما وسلوكهما.

وبعد
هذه المقدمة وهذا التوصيف لعالم الـOOP
نلاحظ أن جُلّ التركيز في هذا النوع من البرمجة يقع على الـفئات
Classes، فالمبرمج يستخدم الفئات المبنية
مسبقاً في
اللغة مع الفئات التي يبنيها هو كي ينتج برنامجاً بالجافا، ربما يفسر
هذا الاسم
OOP Smile

بهذا
يكون درسنا قد انتهى، أرجو أن يكون
واضحاً.. والسلام عليكم..
Ebisu
Ebisu
مبرمج جيد
مبرمج جيد

عدد المساهمات : 45
السٌّمعَة : 50
تاريخ التسجيل : 11/06/2010
العمر : 43

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى