GOGENDANTESS
02-02-2007, 10:17 PM
بسم الله الرحمن الرحيم :)
في هذه الأيام الكثير من اللغات تدعم البرمجة باستخدام الكائنات 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;
}
و السلام عليكم و رحمة الله و بركاته :)
في هذه الأيام الكثير من اللغات تدعم البرمجة باستخدام الكائنات 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;
}
و السلام عليكم و رحمة الله و بركاته :)