الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تكنولوجيا ال OOP

مغلق
بدأه m_3ryan في 20 أبريل 2006 · 10 رد · 1,912 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

(OOP) Object oriented Programming

مقدمة :-

فى الفترة الاخيرة أصدرت شركة ميكروسوفت اصدار Microsoft Visual Studion.net الذى كان ثورة فى علم البرمجة (Software programming) حيث ظهرت بعض التعديلات و التحسينات فى اسلوب البرمجة و هى ال OOP التى سنحاول تناولها و توضيحها على قدر المستطاع بطريقة مبسطة حيث دائما ما يقترن اسم جميع اصدارات .NET بهذا اللفظ OOP.

أولا : أسباب ظهور ال OOP :-

1- التقدم الهائل فى صناعة الهاردوير و الذى لا بد ان يقابله تطور فى السوفت وير

2- الهاردوير تتكون من محموعة من الاجزاء التى يتم تصنيعها منفصلة عن بعضها و كل جزء يمكن استخدامه مرة اخرى بطريقة مختلفة و بالمثل هذه الخاصية لم تكن موجوده فى صناعة البرمجيات

3- OOP هى طريقة برمجة يكون فيه البرنامج يتكون من مجموعة من العناصر الرتبطة مع بعضها.

ثانيا خصائص ال OOP :-

1- تمثل نظام محاكاة للعالم الحقيقى

2- يمكن من خلالها تعريف انواع جديده من المتغيرات و البيانات مثل (int,Boolean,String)

3- نستطيع من خلالها اخفاء تفاصيل البرمجة (الكود ) والتى يطلق عليها Encapsulation

4- تستطيع من خلالها اعادة استخدام الكود مرة اخرى عن كريق الوراثة (Inheritance)

5- يمكن من خلالها استخدام اسم واحد يمثل عدة وظائف مختلفة (Function Overloading ,polymorphism) والتى سنناقش كل خاصية بالتفصيل فيما يأتى:

بالنسبة للخاصيتين 1,2 سوف تتضح من خلال الامثلة اللتى سوف نناقشها فيما بعد

Encapsulation:-

عندما يذهب المريض الى عيادة الى الصيدليه و يكون فى الروشته دواء على هيئة كبسول ما تراه هو عبارة عن الغطاء الخارجى للدواء و لكن باخل هذا الغطاء يوجد المادة الفعالة ة التى بمجرد دخولها الى الجسم تبدا المادة الفعالة فى التفاعل مع الجسم و هذا بالضبط ما يقصد به هنا .

حاول ان تتصفح مجلد ال (program files ) لاحد البرامج سوف يقابلك ملفات لها الامتداد DLL و هذه الملفات عبارة عن Classes تم انشاءها بواسطة مبرمج و قام مبرمج اخر باستعمالها و لكنه يعلم خصائصها فقط ولا يعلم الكود الذى بداخلها فعلى سبيل المثال الملف (shell32.dll) فهذا الملف موجود فى مجلد (C:\windows\system) هذا الملف به الكثييييييييييييييييير من الدوال التى تمنك اى مبرمج ن التفاعل مع بيئة نظام التشغيل Windows(المبرمج يستعمله ملكنه لا يعلم الكود الذى بداخه)

Inheritance (الوراثة):-

بعيدا عن الكتابة بالطريقة العلمية ( صمم احد المبرمجين اصدقائى كلاس وقال لى على الخصائص والدوالى التى يقوم بها هذا الكلاس ولكننى عندما استعملته و جد بعض الدوال التى تحتاج بعض التغيير لكى تناسب احتياجاتى فقمت بانشاء كلاس حديد و جعلت من ضمن خصائصه الخصائص الموجوده فى الكلاس الذى صممه صديقى و قمت فيه بتغيير الدوالى لكى تناسب العمل الذى اقوم به.

بالطريقة العلمية:

الوراثة تقتضى ان يكون المتغير X يشارك المتغير Y فى جميع خصائصه وفى هذه الحالة يسمى Y (الكلاس الاساسى) (Super Class) ويسمى العنصر X (Derived Class ) الكلاس الفرعى و فى بعض الاحيان نرجع الى العنصر Y كلاكلاس الأب و النصر X كالإبن و الشطل الاتى يوضج العلاقة بين العنصر Vehicle والنصر Car :

20_04_06_11_25_39_11455575391.JPG

ممكن واحد يسأل سؤال مهم؟

Why should one entity inherit the structure and behavior of some other entity?

لماذا يضطر البعض الى استخدام ال inheritance فى عمله؟

لأن ال super Class تمثل بعض الخصائص بوجه عام و لذلك تستطيع ال sub class تخصيص الخصائص العامة فى ال super class مثل المثال السابق

20_04_06_11_27_02_1145557622_.JPG

ولكن Car عبارة عن مركبة ولها اربعة عجلات

Car inherits Vehicle Class

مما سبق يتضح الآتى:

يمكن القول ان الوراثة تمثل العلاقة بين التعميم و التخصيص

Generalization – Specialization relationship

مثا ل آخر من الطبيعة :

الحيوان Super Class

الكلب Derived class

ملحوظة هامة :

The inheritance specifies the "Is a" relationship between the subclass and the super-class

الجملة اللى فاتت انا خفت ان اترجمها فاغير من معناها

على قدر استطاعتى هذه الجملة تعنى ان الشكل الهرمى للوراثة يمثل علاقة الكينونة (هو عبارة عن) بين ال sub-class & Super-class

ملحوظة اخرى :

يمكن ان يكون الderived-Class ايضا Super-Class والشكل الاتى يوضح ذلك

20_04_06_11_27_35_11455576553.JPG

لاحظ ان العلاقة تنطق من الفرعى إلى الاصلى Student "is a" person

لاحظ Is a تمثل علاقة الوراثة

أمثلة أخرى تمثل الوراثة و استخداماتها فى البرمجة

Binary Search Is a kind of search algorithm

Student is a Person

Rose Is a flower

- خاصية الوراثة تمكن ال sub-class ان ترث ال data-members , operations and properties

(يعنى من الاخر sub-class بتبقى نسخة طبق الاصل من ال super-class اذا لم تقم باضافة شئ جديد عليها)

أنواع ال Inheritance :-

كل الذى تم شرحه مسبقا يسمى ال Single Inheritance و فى هذا النوع يكون ال Sub-class ترث من كلاس واحد و لكن هناك نوع اخر Multiple inheritance و مثال على ذلك

20_04_06_11_28_27_11455577074.JPG

فى هذا المثال يرث الحيوان البرمائى خصائص كلا من الحوان البرى و الحيوان المائى

Polymorphism :-

يعتبر من احد الخصائص المميزة للOOPو يتلخص تعريف هذه الخاصية فى الاتى و هو ان توجد واجهة واحدة ولكن لها عدة وظائف مختلفة

One interface and multiple implementations

Or

One name with different functionalities

مثال على ذلك دالة sum()

Sum(int,int)

Sum(double,double)

عند التعامل بواسطة الكود مع هذه الدالة يمكن اعطاء قيمتين int أو قيمتين double

مميزات الOOP :-

- Better Software Quality and lower maintenance cost.

- Program can be built from the standard working modules that communicate each other rather having to start from scratch this helps save development time

- It is easy to apportion work in a project based on entities.

- Programmers can build secure programs that can not be invaded by code in other parts of program using the principle of data hiding.

- Inheritance eliminates redundant code and extends the use of existing entities.

ما سبق يعنى بكل بساطه ان البرنامج يمكن تقسيمه الى عدة عناصر وكل مبرمج فى فريق العمل يقوم ببرمجة العنصر و فى نهاية العمل نقوم بتجميع العناصر مع بعض مثل تجميع جهاز الكمبيوتر

سوف اتوقف فى الشرح الى هذا المستوى الى ان ارى تفاعل الناس مع هذا الدرس و توضيح اذا لم اذا كان هناك نقطه غير مفهومة و توضيحها

سوف اقوم بتوضيح جميع ما سبق على لغة البرمجة Visual Basic.net ولكن بعد الانتهاء من استيعاب هذا بالتفصيل لكى نعمل على اساس سليم و نعمل بغرض الفهم

لا تنسونا بخالص الدعاء

مدح الله تعالى أهل طاعته بقوله: (إن الذين هم من خشية ربهم مشفقون، والذين هم بآيات ربهم يؤمنون، والذين هم بربهم لا يشركون، والذين يؤتون ما آتوا وقلوبهم وجلة أنهم إلى ربهم راجعون، أولئك يسارعون في الخيرات وهم لها سابقون) [المؤمنون:57-61).

#2

نشكرك أخي على مجهودك.

رجاء فقط عدم تكرار المواضيع في أكثر من منتدى حتى لا تفقد المواضيع قيمتها. وحتى نحافظ سويا على تنظيم المنتدى.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#4

مقالة متميزة اخي m_3ryan .. و انا متشوقة للقادم :)

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#7

لماذا الربط بين الOOP و ال.net ؟؟؟؟ فال OOP موجود منذ أكثر من 20 عاماً و كانت الانطلاقة الحقيقية له مع ظهور ال++C و لكن كانت مرحلة انتقالية فكانت ال++C تجمع ما بين الfunctional programming و الOOP و تعتبر النقلة الى الPure OOP مع ال JAVA و الSmall Talk

و لكن ال.net يأتي في نهاية هذه القصة فقد ظهر عام 2001

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#8

العضو العزيز bashmohandes بداية اشكرك على التجاوب

ان متفق معك فى كل شئ ولكن الذى اقصده

Inheritance is one of the foundations

of object-oriented programming, and this is the first version of Visual Basic that supports

true inheritance (or implementation inheritance, as it’s called).

ان كل ما سبق وتحدثت عنه ان كان موجودا من قبل مع اصدارات ال microsoft Visual Studio فانه لم يكن موجودا بمثل هذ الكيفية الان فعلى سبيل المثال اصدار VB.NET يعتبر اول اصدار من سلسلة الVB يتناول موضوع الوراثة بالمعنى الصحيح و هذا ما سوف نوضحه فيما بعد

#9

أنا لم أسألك عن الInheritance حتى تجاوبني فيه

ما دخل ال OOP بال VB أو ال#C أو الVisual Studio فكل هذه مجرد تقنيات و أدوات و لكن الOOP هو فلسفة و مبدأ برمجي و لا يعتمد عل تكنولوجيا معينة .. فلاتوجد لغة برمجة في العالم تدعم 100% من الأشياء النظرية في الOOP مثل الMultiple Inheritance ....

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#11

مقالة متميزة

هذا الموضوع مغلق.

مواضيع مشابهة