بسم الله الرحمن الرحيم
في هذه الأيام الكثير من اللغات تدعم البرمجة باستخدام الكائنات Object-Oriented Programming ، مثل
++C
Java
JavaScript
#C
VB.NET
Python
Ruby
PHP
Objective-C
تبدأ جذور البرمجة الكائنية من بداية لغة الـ Simula في عام 1960 ، عندما بدأت شركات هندسة البرامج بمناقشة أمر سموه "فوضا البرامج" ، عندنا كانت البرامج تزداد بشكل مذهل و كان الكود يكبر و يكبر ، سألو أنفسهم "كيف يتم صيانة البرنامج ؟"
ففعلا هالسؤال محير ، تخيل انك انت مع 20 مبرمج كتبتو برنامج لشركة كبرى و كود البرنامج 20000 ألف سطر ، اشلون تسوون صيانة للبرنامج ؟؟
من هنا ظهرت البرمجة الكائنية ، حيث ان البرنامج يجمن كائنات مفصولة عن بعضها ليشكل برنامج واحد كامل من كائنات تتفاعل مع بعضها و لكن أكوادها مفصولة تماما عن بعضها
فالبرمجة الكائنية تجعل الكود مرتب جدا مثل ما قمت ، و تجعلها اوظح و اسهل لإعادة الصيانة ، و زيادة على ذلك ، يمكن استخدام كائنات هذا البرنامج لبرنامج آخر
و هذي عناصر البرمجة الكائنية :
1-Class : و اهو تماما مثل خريطة البيت قبل لا ينبني ، يحتوي على كل مميزات الكائن اللي راح يستخدمه المبرمج
2-Object : بعد ما تخلص من كتابة الـ Class ، تسوي الكائن مبني على الـ Class. الـ Class كأنه اهو المخطط للبيت ، و الـ Object اهو البيت نفسه
3-Methods : او حتى يسمونه Class Function ، و اهو مثل اي دالة (function) تكتبها للبرنامج ، لكن هذي الدالة تستحدم للتعامل مع بيانات الـ Class
4- Inheritance : و اهو التوارث ، هذي الميزة تمكنك من إنشاء Class مبني على Class آخر. مثلا ، إذا انت كنت مسوي Class يحتوي على خصائص سفينة فظائية ، تقدر تسوي كلاس اسمه Fighter و Defender ، و هذول الكلاسات يسمونهم child class او sub class.
5- Polymorphism : (تعدد الأشكال) و اهو يعطي نتائج مختلفة على حسب عمل البرنامج
و هذا مثال انا سويته بالـ ++C للبرمجة باستخدام الكائنات:
كود:#include <iostream> #include <string> #include <conio.h> using namespace std; class Bow { //Beginning private section private: //Data members string color; bool drawn; int numOfArrows; //Beginning public section public: //Methods void draw(); int fire(); Bow(string aColor); //Constructor ~Bow(); //Destructor }; Bow::Bow(string aColor) { aColor = color; } Bow::~Bow() { //Nothing to clean up } void Bow::draw() { drawn = true; cout << "The " << color << " has been now drawn." << endl; } int Bow::fire() { if (!drawn) { cout << color << " has not been drawn " << "and therefore you cannot fire." << endl; return 0; } int score; score = rand() % (10-0+1) +0; if (score == 0) cout << color << " missed the target!!!" << endl; else cout << color << " scored " << score << " points!!!" << endl; return score; } //Main function int main() { //Creating object derived from Bow class Bow b1("red"); getch(); return 0; }
و السلام عليكم و رحمة الله و بركاته![]()