البرمجة الشيئية أو Object-Oriented Programming او OOP هي نهج برمجي يهدف إلى تنظيم البرنامج فى إطار مفهوم الكائنات أو الأشياء بدل من الدوال فى البرمجة الإجرائية. والهدف من ذلك تسهيل إدارة البرنامج وتخفيف التكرار في الكود وجعل البرنامج أكثر هيكلة وسهولة في الصيانة.
محتوي المقال
أهمية إستخدام البرمجة الشيئية
- تساعد البرمجة الشيئية OOP بنمذجة الأشياء المعقدة إلى هياكل بسيطة قابلة للتكرار
- يمكن إعادة إستخدام الكائنات فى اي مكان فى الكود
- تسهل البرمجة الشيئية من مهمة إيجاد تصحيح الأخطاء.
- توفر البرمجة الشيئية نوعًا من الحماية خلال مفهوم التغليف encapsulation
ماهو مفهوم الكائن (Object) فى البرمجة الشيئية
في البرمجة الشيئية، يعتبر Object (أو الكائن) هو العنصر الأساسي الذي يمثل شيئًا معينًا في الواقع، مثل شخص أو سيارة أو حيوان أو أي شيء آخر تريد تمثيله فى البرنامج. ويتم تمثيل هذا الكائن في البرنامج عن طريق تعريف الخصائص (Properties) التي تصف حالته وصفاته، والأساليب (Methods) التي يمكن استخدامها للتعامل مع هذا الكائن وتنفيذ العمليات المختلفة عليه.
الخصائص (Properties) فى البرمجة الشيئية تمثل المتغيرات فى البرمجة الإجرائية.
بينما الأساليب (Methods) فى البرمجة الشيئة تمثل الدوال فى البرمجة الإجرائية.
فعلى سبيل المثال، يمكن تعريف كائن “السيارة” بخصائص مثل اللون والموديل والسرعة القصوى والوزن، وبأساليب مثل تشغيل المحرك وتحريك السيارة وتغيير سرعتها وغيرها. ويمكن استخدام هذا الكائن في البرنامج لتمثيل سيارة حقيقية وتنفيذ العمليات المختلفة عليها، مثل تحريكها وتغيير سرعتها وفحص حالتها.
Class فى البرمجة الشيئية
في البرمجة الشيئية، يُعرف Class على أنه قالب أو نموذج يستخدم لإنشاء كائنات (Objects) من نفس النوع. وهو عبارة عن مجموعة من الخصائص (Attributes) والوظائف (Methods) التي تحدد سلوك الكائن الذي يتم إنشاؤه منه.
على سبيل المثال، يمكن إنشاء Class بعنوان “Person”، يحتوي على الخصائص الأساسية للشخص مثل الاسم والعمر والجنس والعنوان والوظيفة، والوظائف المرتبطة بهذه الخصائص مثل إضافة شخص جديد أو تحديث بيانات شخص موجود.
ام الكائن فهو نسخة محددة من هذا القالب (Class), فهو ذلك الشخص الذى اسمه فلان والخ.
إليك مثال بسيط على البرمجة الشيئية بإستخدام لغة Java
// تعريف الكلاس class Car { // الخصائص (المتغيرات) الخاصة بالكلاس String color; int year; int speed; // الأساليب (الدوال) الخاصة بالكلاس void accelerate() { speed++; } void brake() { speed--; } void paint(String newColor) { color = newColor; } } // إنشاء كائن (Object) من الكلاس Car myCar = new Car(); // تعيين الخصائص للكائن myCar.color = "Red"; myCar.year = 2022; myCar.speed = 0; // استخدام الأساليب على الكائن myCar.accelerate(); myCar.accelerate(); myCar.brake(); myCar.paint("Blue");
في هذا المثال، يتم تعريف الكلاس “Car” وتحديد خصائصه كـ “اللون”، “السنة”، و “السرعة”، بالإضافة إلى الأساليب “تسريع”، “فرملة”، و “تغيير اللون”. ثم يتم إنشاء كائن جديد من الكلاس “Car” وتعيين الخصائص له، ثم استخدام الأساليب على الكائن الذى تم إنشاءه.
مبادئ البرمجة الشيئية
هنالك مجموعة من المفاهيم والمبادئ الإرشادية التي تستخدم في تصميم البرامج بطريقة شيئية (Object-Oriented Programming). وتهدف هذه المبادئ إلى تحسين جودة البرامج وسهولة تطويرها وصيانتها.
وتشمل مبادئ البرمجة الشيئية:
- التوريث (Inheritance): وهي عملية تمكن المبرمج من إنشاء كائن جديد باستخدام خصائص كائن موجود بالفعل، مما يسهل عملية إعادة استخدام الكود.
- التغليف (Encapsulation): وهي عملية إخفاء التفاصيل الداخلية للكائنات، وعرض وظائف محددة للمستخدمين. وهذا يحمي الكود ويزيد من قابلية إعادة استخدامه.
- التجرد (Abstraction): وهي مفهوم يتيح للمبرمج إخفاء التفاصيل الداخلية للكائنات عن المستخدمين، وعرض واجهة مستخدم بسيطة يسهل استخدام الكائنات.
- تعدد الأوجه (Polymorphism): وهي قدرة الكائنات على تقديم سلوك مختلف حسب السياق الذي يستخدم فيه، مما يزيد من مرونة البرنامج وتحسين كفاءته.
وتتضمن هذه المبادئ استخدام مفاهيم مثل الكلاسات (Classes) والكائنات (Objects) والتوريث (Inheritance) والواجهات (Interfaces) وغيرها.
لغات برمجة تدعم البرمجة الشيئية
هناك العديد من لغات البرمجة التي تدعم البرمجة الشيئية، ومن أبرزها:
- جافا (Java)
- سي بلس بلس (C++)
- بايثون (Python)
- روبي (Ruby)
- جافا سكريبت (JavaScript)
- C#
- بى اتش بي (PHP)
- سويفت (Swift)
وهناك العديد من اللغات الأخرى التي تدعم البرمجة الشيئية، وتختلف من لغة برمجة إلى أخرى في الطريقة التي تتم بها البرمجة الشيئية، وفي الخصائص التي تقدمها للمطورين ولكن جميعها تتفق فى المفهوم العام.
ممتاز !!!!!خليكم كذا ………. نزلو أشياء مفيدة