البرمجة الشيئية او البرمجة كائنيه التوجه والتي يطلق عليها بالإنجليزية object oriented programing واختصارها oop أصبحت الان من اهم الخطوات الرئيسية والاساسية لتعلم البرمجة ومن اهم المتطلبات لأي وظيفه وبسبب تلك الأهمية للبرمجة الشيئية او البرمجة كائنيه التوجه سنتطرق الان لمفهومها واهميتها وتكوينها وسنعطي مقدمه قويه وبسيطة لها بإذن الله.
سبب وجود البرمجة الشيئية "oop"
في البداية يجب توضيح أسباب وجود البرمجة الشيئية حيث السبب الرئيسي والاساسي لوجودها هو كيفيه تخزين مجموعه مختلفة من البيانات والمعلومات الخاص بشيء واحد في مكان واحد.
أي بدلا من استخدام المفاهيم وأنواع البيانات "Data Types" البدائية التي تخزن فقط علي سبيل المثال قيمه العمر او قيمه الطول او حتي الاسم فقط.
تجميع كل تلك البيانات في مكان واحد واستعمال ما نريد منها عند وقت الحاجه وذلك يكون اكثر تنظيما وتسلسلا وأيضا الاسهل في عمليه الاستعمال.
أي مثلا محمد نخزن قيمه عمره واسمه وطوله بالإضافة الي وظائفه كم يأكل في اليوم اين يعمل عنوانه بالإضافة للرقم تليفونه وهل يحب البرمجة ام لا وهكذا كل ذلك في مكان واحد يمكن اعاده استخدامه مره اخري لاحقا.
هل البرمجة الشيئية هي اول من تخزن مجموعه من القيم في مكان واحد ؟
لا هناك Array : ونستطيع من خلالها تخزين مجموعه من القيم ولكن يجب ان يكونوا من نفس النوع أي كلهم من النوع int او كلهم من النوع String وهكذا..
أي لا يمكن مثلا تخزين العمر والاسم معا اذا فهي لم تحل المشكلة وهي تخزين كل بيانات الشيء في مكان واحد.
وأيضا هناك Struct : وهي تخزن مجموعه من القيم في مكان واحد ويمكن ان يكونوا من أنواع مختلفة أي يمكن تخزين الاسم والعمر معا وغيره من الأنواع.
ولكنها لم تحل المشكلة أيضا لأنها لا نستطيع تخزين بداخلها الأفعال "methods" وهي الأفعال التي يقوم بها الشيء أي مثلا عند تخزين بيانات عن الانسان من الممكن تخزين بعض الوظائف التي يمكن القيام بها مثل المشي والاكل والصلاة وهذه الوظائف تكون عباره عن مجموعه من التكرارات "for" والظروف "if" ولا يمكن تخزين ذلك في ال struct ولكن يمكن عمله في البرمجة الشيئية وهو سبب وجودها.
اذا ما مفهوم البرمجة الشيئية object oriented programing ؟
نموذج برمجي يتم استعماله لبناء كود برمجي يتكون من مصطلحين اساسين ورئيسين هم الفئات "classes" والكائنات "objects" ويمكننا اعاده استخدامه مره اخري.
اذا البرمجة الشيئية تتكون من مصطلحين رئيسيين
- الفئات "classes"
- الكائنات "objects"
ماذا يقصد بالفئات "classes"
في البرمجة الشيئية مصطلح "class" يكون كل شيء عام معرف له خصائص "attributes" ووظائف او أفعال "methods or functions".
علي سبيل المثال يمكن اعتبار كل من الاتي class :
- الحيوان
- الانسان
- جماد
- ثديات
- طيور..
أي هي المصطلح بشكل عام ويمكن اطلاق عليه أيضا super_class لأنه الكلاس الرئيسي.
اما الكائنات "objects"
هو ما يرث الخصائص والوظائف من ال class الرئيسي ويمكن اطلاق عليه sub_class.
وبشكل اخر هو مختلف عن الكلاس في انه يكون الشيء نفسه ويكون اكثر تخصصا.
أي علي سبيل المثال :
- مصطلح الحيوان بشكل عام من الفئات بينما الأسد كائن.
- مصطلح الانسان بشكل عام من الفئات بينما محمد ، عمر ، إبراهيم ، إسماعيل او يوسف.. كائن.
- مصطلح الطيور بشكل عام من الفئات بينما الصقر ، العصفور او الحمام.. كائن.
- مصطلح الطالب بشكل عام من الفئات بينما الطالب فلان الفلاني يعتبر كائن وهكذا..
اذا أي مصطلح يطلق بشكل عام يكون من النوع فئات "classes" بينما الشيء نفسه يكون كائنات "objects".
المفاهيم الأربعة الرئيسية للبرمجة الشيئية "oop"
التغليف encapsulation يقصد به ارتباط الوظائف والخصائص الخاصة بشيء معين ببعضها لبعض كما انها تمنع أي تدخل خارجي لعدم اساءه استخدام بعض البيانات.
التجريد abstraction هو مشابه للتغليف لأنه يخفي بعض الخصائص والوظائف من الكود الخارجي بالإضافة انه يعزل او يجرد التأثيرات التي تحدث فهي لا تؤثر الا علي الكود المعروض فقط بحيث اذا حدث خطا ما لا يؤثر علي الكود البرمجي ككل.
الوراثة inheritancce يقصد انه اذا كان هناك صفات وخصائص مشتركه بين بعض الكائنات يمكن وراثتها من بعضها لبعض بدلا من اعاده كتابتها .
تعدد الاشكال polymerphism هو إعادة استخدام نفس الصفة او الوظيفة "method" ولكن بطرق مختلفة أي ان الصوت صفه ولاكن تمثيل صوت القطه غير الأسد غير الانسان.
مرحله تعلم البرمجة الشيئية من مراحل تعلم اساسيات البرمجة
يجب تعلم البرمجة الشيئية بعد تعلم اساسيات أي لغة برمجه مباشر وهي الأساسيات والمصطلحات الرئيسية مثل if,for,while,else if وغيرها..
هل البرمجة الشيئية خاصه بلغه برمجه معينه ؟
لا هي مفهوم رئيسي موجود ومقترن ببعض لغات البرمجة وليس كلها مثل java,php,paython,javascript,++c
يمكنك تعلم اساسيات أي لغة من تلك اللغات ثم البدء في تعلم البرمجة الشيئية.
اهم الأماكن لتعلم البرمجة الشيئية
هناك العديد من الكورسات المجانية وأيضا المدفوعة والان سأدلك علي افضل الكورسات الموجودة علي اليوتيوب.
وغيرها من الكورسات يمكنك البحث بنفسك واختيار المناسب لك.
فوائد تعلم البرمجة الشيئية "oop"
اهم 7 فوائد لتعلم البرمجة الشيئية
- إعادة استخدام الكود اكثر من مره من خلال الوراثة inherritance.
- تسهيل قراءه والتعامل مع الكود البرمجي من خلال تقسيمه لمجموعه من ال classes.
- المرونة من خلال مصطلح تعدد الاشكال polymerphism.
- تغليف البيانات ومنع استخدامها أي استخدام خاطئ encapsualtion.
- منع التأثير علي الكود الخارجي عند حدوث أي تغييرات وتؤثر علي الكود البرمجي المعروض فقط abstraction.
- زياده المهارات الخاصة بك وبالتالي حصولك علي وظيفه افضل.
- فهم تراكيب وبعض الوظائف البرمجية الجاهزة وكيفيه عملها التي تستعمل البرمجة الشيئية.
في النهاية اذا كان مازال لديك أي أسئلة نرجو تركها في التعليقات للإجابة عليها في اقرب وقت بإذن الله اما اذا كان المقال قد نال اعجابك واستفدت منه فلا تنسي مشاركته مع اصدقائك علي مواقع التواصل الاجتماعي.