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


Object Oriented Programming يعتبر تقنية ساعدة المبرمجين على عمل البرامج بشكل هيكلى Modeling وشبه إلى حد ما الاشياء الموجوده فى حياتنا Like Real-Life Objects, وساعدة أيضا شركات البرمجه على توفير الوقت والمجهود فى عدم كتابة الأكواد المتكرره مرات عديده فى كثير مشارعها, وأيضا حلت مشكلات DLL.

لو نظرنا فى عالمنا سوف نجد مجموعه من الفئات objects تشترك فى الخصائص Attributes مثل الطول الوزن اللون والسلوكيات Behaviors يمشى يأكل يشم يرى, مثل الإنسان أو الحيوان أو النبات وكلها تحمل صفات مميزه لكل فئه same ,characteristic نفس الشىء فى البرمجة الشيئية فهناك مجموعه من ال Classes تحمل مجموعه من الخصائص data ومجموعه من السلوكيات Methods تحمل صفاتها المميزه.

مثال:

Human is a model

Characteristics
1- Tall=180
2- Weight =80
3- Color eye : black
4- Name : Ahmed

Behaviors
1- Speak
2- Eat
3- Drink
قبل أن نبدء فسأستخدم لغة #C تحت بيئة Net. فى شرحى لأن ده هيكون بإذن الله تمهيد لشرح كورس MCDP2010 من Microsoft

ماهى عيوب البرمجة التقليدية Traditional Programming
1- صعوبة الإصلاح  difficult maintenance
2- بطىء التطوير     slow development

مميزات البرمجة الشيئية object oriented programming
1- سهولة الإصلاح والصيانة Easy maintenance
2- سهولة التطوير fast development

OPP Concepts

-->
OPP مبنية على ثلاثة مفاهيم رئيسية ويمثلون أحجار البناء ل OPP
  • Encapsulation
  • Inheritance
  • Polymorphism
قبل أن نبدء فى تعريف كل concept يجب أن نعرف أولا الفرق بين Object & Class

ممكن أسألك سؤال؟ ما الفرق بين الإنسان وأحمد أو محمد أو منى؟الإنسان له طول وله وزن وله حاسة شم وحاسة سمع وحاسة إبصار
أحمد عبارة عن إنسان طوله 180 سم ووزنه 80 كيلو ونظره 6/6.
محمد عبارة عن إنسان طوله 170 سم ووزنة 70 كيلو وهكذا


فالإنسان يضم كل الصفات وكل والخصائص التى يملكها أى إنسان, أما أحمد ومحمد ومنى فهم عبارة عن نسخه من الإنسان لهم خصائصهم وصفات خاصه بكل شخص منهم.

فى البرمجه لا تختلف كثيرا فال Class يمثله الإنسان والأشخاص يمثلهم Objects.

 Class عبارة عن Software Templates يعرف بداخله Variables & Methods لكى يتم إرسالها إلى Object معين
Object هو نسخه من الكلاس له هوية خاصه به ويختلف عن Object أخر واخد نسخه من نفس الكلاس.



كما هو موضح بالصورة فإن هناك كلاس معين إسمه خاص بالموظف يحتوى على إسم الموظف وعمره ورقمه وهناك بعض الموظفين Objects لهم بعض الخواص الخاصه بهم تختلف من موظف عن الأخر من حيث الاسم والعمر ورقمه فى الشركة.

بعد أن تعرفنا على الفرق بين ال Object و Class

هيا بنا نتعرف على شىء مهم جدا أيضا وهو ما الفرق بين Reference Type & Value Type

Reference Type & Value Type

Value type وتنقسم إلى Simple Type& Enum & Structs وهى ال Types المحدده ب Size معين كما بالشكل التالى.
Reference Type عباره عن User-Defined Types أى Types يتم تحديد ال Size بواسطة ال User كما بالشكل التالى.



هيا بنا نتعرف على شىء مهم جدا وهو كيف يتم تخزين ال Object فى ال Memory

Represent Object in Memory

يجب أن نعرف أن Net Framework. يقسم ال Memory الى قسمين
  1. Heap
  2. Stack
 دعنا نعرف جميعا بأن ال Value Type يتم تخزينه فى Stack أما Reference Type يتم تخزينة فى ال Heap كما هو موضح فى الشكل التالى


كما وضحنا سابقا بأن ال Value Type يتم تخزينه فى Stack أما Reference Type يتم تخزينة فى ال Heap يشز عن هذا القاعدة ال Variables المعرفة داخل class تم عمل له Object( أنا عارف أن كده الأمور ممكن ماتكنش واضحه) لكن شوف أوضحها فى الشكل التالى:

 using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            float Fet;
            Human Mohamed = new Human();
            Human Ahmed = Mohamed;
            Fet=Mohamed.fetness(180, 80);
            Console.WriteLine(Fet);
        }
    }
    class Human
    {
        float tall;
        float weight;

        public float fetness(float _T,float _W)
        {
            tall = _T;
            weight = _W;
            return tall - weight;
          
        }
    }
}



فنلاحظ أن Tall و ال Weight تم تخزينهم فى ال Heap وليس Stack مع أنهم Value Type

الأن جاء الوقت للدخول بتعمق فى ال Object Orianted Programing

وسوف نبدء ب Encapsulation



2 التعليقات

غير معرف يقول... @ 3 أبريل 2016 في 9:23 ص

الله يسعدك... مره سهلت علي البرمجة و فهمت صح

Mohammed يقول... @ 21 يوليو 2020 في 11:45 ص

مشكور يا كبير

إرسال تعليق