# اوبجیکٹ اوریئنٹڈ پروگرامنگ

**پروگرامنگ شے التوجہ** (انگریزی: object-oriented programming) کمپیوٹر پروگرام (program) کو مسئلے کی درجہ بندی اور ان کے آپس کے روابط کی بنیادوں پر مرتب کرنے کا نام ہے۔

## تشریح

**پروگرامنگ شے التوجہ** کو سمجھنے کے لیے سب سے پہلے درجہ بندی (classification) سمجھنا ضروری ہے۔ درجہ بندی سے مراد حقیقت میں وہی ہے جو عام زندگی میں ہوتا ہے۔ مثال کے طور پر مضامین کی درجہ بندی کچھ اس طرح سے کی جا سکتی ہے :

mazameenمضامین کی درجہ بندی
مندرجہ بالا مثال سے معلوم ہوتا ہے کہ مضامین کو چار درجوں میں تقسیم کیا گیا ہے۔ اگر ہم دوسری سطح کی درجہ بندی کو دیکھیں تو معلوم ہوگا، سارے مضامین ایک دوسرے سے بالکل الگ الگ ہیں مگر ایک ہی درجے سے تعلق رکھتے ہیں یعنی سب کے سب مضامین ہی ہیں۔ بالکل اسی طرح سے برصغیر اور یورپ کی تاریخ بالکل الگ ہیں مگر دونوں تاریخ کی درجہ بندی سے تعلق رکھتی ہیں۔

اب پروگرامنگ کی طرف آتے ہیں۔ شروع میں برنامہ کاری (programming) صرف ہدایات (Instructions) کی بنیاد پر ہوتی تھی۔ جوں جوں برنامہ کاری کے میدان میں ترقی ہوتی گئی پروگرام کا حجم اور مسائل کے حل کی تعداد بڑھتی گی۔ کسی بہت بڑے پروگرام میں نقص ڈھونڈنا اور اس کا حل تلاش کرنا مشکل ترین ہوتا چلا گیا۔ تو ضرورت اس امر کی پیش آئی کہ کس طرح پروگرام کو مرتب کیا جائے جس کو نہ صرف بعد میں سمجھنا بلکہ نقص دور کرنا بھی آسان ہو سکے۔ ان مسائل کے حل ڈھونڈنے میں آج تک پروگرامنگ نے کئی ادوار دیکھے۔ 1960ء اور 1970ء کی دہائیوں تک پروگرامنگ شے التوجہ کے تصورات مزید واضح ہوتے چلے گئے۔

## بنیادی تصورات

پروگرامنگ شے التوجہ کے بنیادی تصورات کچھ اس طرح ہیں۔

### درجہ بندی

مسائل کو ان کے درجوں کے لحاظ سے تقسیم کرنا درجہ بندی کہلاتا ہے۔

### مثال

کسی بھی درجہ بندی کی حقیقی مثال۔ مثلا بابو/منشی (clerk) اورمنتظم (manager) ملازمین ہیں اور فلاں صاحب منشی ہیں یعنی منشی کی درجہ بندی کی حقییقی مثال ہیں۔

### خواص

ہر درجہ (class) کے کچھ خواص ہوتے ہیں جو اس درجہ کی تعریف بیان کرتے ہیں۔

### طریقہ کار

خواص کی طرح ہر درجہ کے کچھ طریقہ کار ہوتے ہیں۔ یعنی ان ہدایات کا مجموعہ جن کے لیے یہ درجہ مخصوص ہو۔

### درجوں کے تعلق

درجہ ایک دوسرے سے اخذ کیے جا سکتے ہیں۔ مثلا مضامین والی مثال میں دوسرے سطح کے درجے مضامین سے اخذ کیے گئے ہیں۔

### وراثت

اخذ کیے جانے والا درجہ اپنی بنیادی درجہ سے خواص اور طریقہ کار بھی استعمال کر سکتا ہے۔

مندرجہ ذیل مثال ان تصورات کو بیان کرتی ہے۔

mazameen
تینوں ذیلی ادارے درحقیقت قومی ادارے ہیں۔ قومی ادارہ کچھ بنیادی خواص اور طریقہ کار رکھتا ہے جو تمام ذیلی اداروں میں پائی جائے گی۔ اداروں کا تعلق درجوں کے تعلق کو بیان کرتا ہے۔ جبکہ ذیلی اداروں میں اپنے خواص و طریقہ کار کے ساتھ ساتھ قومی ادارے کے خواص بھی پاے جائیں گے جو وراثت کی مثال ہے۔

## ایک عام مثال

ایک مصرف (Bank) کے کھاتوں کا حساب کتاب رکھنے کے لیے پروگرام بنایا جائے تومختلف درجوں میں ان سے متعلق خواص اور طریقہ کار وضع کیے جائیں گے۔ بینک کے کسی کھاتے کا ایک بنیادی درجہ کچھ یوں ہو سکتا ہے :

mazameen
خواص میں مالک کا نام اور رقم کی تعداد محفوظ ہو سکے گی۔ جبکہ پیسہ نکالنے اور جمع کرنے کا طریقہ کار (برمجی ہدایات: Programming Instructions) بھی اسی درجہ میں بیان ہوگا۔ اس مثال سے واضح ہو جاتا ہے کہ برنامج کو درجوں میں بانٹنے سے پروگرام سمجھنا اور بعد میں ٹھیک کرنا خاصا آسان ہو جاتا ہے۔ عام زندگی میں ہمیں جابجا اس کی مثالیں نظر آتی ہیں۔ اداروں کو انتظامی بنیادوں پر درجوں میں تقسیم کرنا اس کی ایک واضح مثال ہے۔

## دوسری مثال

**برنامہ سازی** کی شے التوجہ انداز (Paradigm) میں پروگرام کے اجزا کو مختلف چھوٹی بڑی مفرد یا مرکب اشیا کے انداز میں برتا جاتا ہے۔ بنیادی تصور یہ ہے کہ ہر شے کا تعلق ایک عمومی درجہ (Class) سے ہوتا ہے جو چند خواص اور چند افعال پر مشتمل ہوتی ہے۔ یہ اصناف مختلف چھوٹی اصناف کا مرکب ہو سکتی ہیں یا پھر کسی بنیادی صنف کی شاخ۔ مثال کے طور پر ایک لائبریری مینجمنٹ پروگرام میں کتاب، مصنف، صارف، پبلشر وغیرہ کچھ ایک اصناف ہو سکتی ہیں اور ہر صنف سے متعلق کئی اشیا نظام کا حصہ ہو سکتی ہیں۔ ان میں سے ہر شے ایک دوسرے سے مختلف ہو سکتی ہے لیکن بعض معاملات میں یکسانی ہوگی جن کے باعث وہ کسی ایک صنف کا جزو ہوں گی۔ جیسے تمام کتابوں میں قدر مشترک یہ ہے کہ ہر ایک کتاب کا ایک عنوان ہوگا، ایک یا زائد مصنف ہوں گے، صفحات کی تعداد ہوگی، سن اشاعت ہوگی، یہ تمام خواص مل کر کتاب کی صنف متعین کرتی ہیں اور ان کی مختلف قدریں کسی مخصوص کتاب کو بطور مفرد شے متعارف کراتی ہیں۔ اسی طرح صارف اور مصنف دونوں اپنے آپ میں اصناف ہیں لیکن وہ دونوں ہی ایک عمومی صنف "فرد" سے مشتق (inherited) ہیں۔ صارف کے خواص میں اس کا نام، ولدیت، پتہ، تاریخ ولادت، جنس اور تاریخ رکنیت وغیرہ شامل ہوں گی جبکہ اس کے افعال میں کتابیں نکلوانا، جمع کرنا، فیس ادا کرنا وغیرہ شامل ہوں گی۔ اسی طرح مصنف کے خواص میں نام، ولدیت، تاریخ ولادت، جنس، تعداد کتب اور افعال میں کتابیں لکھنا، انھیں شائع کروانا وغیرہ شامل ہوں گی۔ صارف اور مصنف کے جو خواص اور افعال مشترک ہوں گے انھیں صنف مشترک یعنی فرد سے منسلک کر دیا جائے گا اور منفرد خواص اور افعال کو ذیلی اصناف میں رکھا جائے گا۔