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

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

مغلق
بدأه m_3ryan في 20 أبريل 2006 · 3 رد · 1,881 مشاهدة · في Microsoft Visual Basic.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).

#3

ياليت تواصل شرحك............عن oop

وياليت كمان توضح معنى :

Abstraction

Overloading

Overriding

Shadowing

تم تعديل هذه المشاركة بواسطة programmer_net2 في 19 يونيو 2006 في 03:03

BANER.jpg
#4

السلام عليكم

مشكور أخوي على هل الشرح الرائع

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

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