2
1

একজন সাধারণ মানুষ/ছাত্র (কম্পিউটার বিজ্ঞানের কিছু জানে না) যদি আমাকে জিজ্ঞেস করে যে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং কি, তাহলে আমি তাকে কিভাবে উত্তর দেবো?

asked 10 Nov, 07:00

menon's gravatar image

menon
3.9k222

edited 10 Nov, 07:40

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
7618


আমরা যখন একটি প্রোগ্রাম লিখে কোনো সমস্যার সমাধান করি (যেমন, আয়-ব্যায়ের হিসেব-নিকেশ, পরীক্ষার ফলাফল বের করা ইত্যাদি), তখন আমরা সেই সমস্যা সমাধানের যেই লজিক, সেটি অনুসরণ করে একটার পর একটা স্টেটমেন্ট সাজাই। সেখানে আমরা বিভিন্ন ভ্যারিয়েবলের ওপর গাণিতিক ও লজিক্যাল অপারেশন চালাই। তারপরে কম্পাইলার যখন একের পর এক স্টেটমেন্ট এক্সিকিউট করে, তখন সেই সমস্যার সমাধান আমরা পেয়ে যাই। যখন আমাদের সমস্যাটি বেশ জটিল ধরণের হয়, তখন আমরা সেটিকে ছোট ছোট অনেকগুলো সমস্যায় ভাগ করি এবং প্রতিটি সমস্যার সমাধানের জন্য একটি ফাংশন তৈরি করি। তখন ধাপে ধাপে সেই ফাংশনগুলো ব্যবহার করে জটিল সমস্যাটির সমাধান পেয়ে যাই।

বাস্তব জীবনে আমরা প্রায়ই দেখি যে, সফটওয়্যার তৈরি করার সময় সেটি বিভিন্ন অবজেক্ট নিয়ে কাজ করে। যেমন একজন মানুষের বেতন প্রসেস করা, বা একজন শিক্ষার্থীর পরীক্ষার ফল প্রসেস করা। এখন আমরা যদি এমনভাবে প্রোগ্রামিং করি, যেখানে কেবল বিভিন্ন ডেটা টাইপ নয়, বরং শিক্ষার্থী, কর্মচারী ইত্যাদি ডেটা টাইপ তৈরি করি, যাদের নির্দিষ্ট কিছু বৈশিষ্ট্য থাকবে এবং সেখানে কেবল মৌলিক ডেটাগুলো ছাড়াও বিভিন্ন সংশ্লিষ্ট কাজও করা যাবে (যেমন, কর্মচারীর বেতন-বোনাস আপডেট করা, ছুটির হিসেব রাখা), তাহলে বড় ধরনের সফটওয়্যার তৈরি করা অপেক্ষাকৃত সহজ হয়। এই শিক্ষার্থী, কর্মচারি - এগুলো হচ্ছে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের ভাষায় ক্লাস (class) এবং একটি প্রতিষ্ঠানে যেমন অনেক কর্মচারি থাকতে পারে, অনেক শিক্ষার্থী থাকতে পারে, তেমনি প্রোগ্রামেও আমরা একটি ক্লাসের অনেকগুলো অবজেক্ট তৈরি করতে পারি। অফিসে রহিম নামে যেই মানুষটি চাকরি করছেন, উনি হচ্ছেন কর্মচারি ক্লাসের একটি অবজেক্ট। আমরা রহিম সাহেবের বেতন, ছুটি, প্রমোশন এসব সহজেই করতে পারবো এবং এগুলো কিভাবে করা হবে, সেটি কর্মচারি ক্লাসেই বলে দেওয়া থাকবে। এভাবে কাজ করার সুবিধা হচ্ছে অফিসের 1000 কর্মচারি থাকলে প্রত্যেকেই আলাদা অবজেক্ট, তাদের হিসেব-নিকেশ আলাদা কিন্তু প্রত্যেকের জন্য আমার নতুন করে ফাংশন তৈরি করা লাগবে না। কর্মচারি ক্লাসে যেসব ফাংশন তৈরি করা আছে, সেগুলোই প্রত্যেক অবজেক্ট তাদের নিজেদের প্রয়োজনে ব্যবহার করতে পারবে, কিন্তু প্রত্যেকের তথ্য আলাদা থাকবে। রহিম সাহেব একদিন ছুটি নিলে তাঁর ছুটির হিসেব থেকে একদিন বাদ যাবে, কিন্তু অন্যদের ছুটির হিসেবে সেটি কোনো প্রভাব ফেলবে না। আর এই ছুটির হিসেব করার জন্য আমাদের নতুন কোড লেখা প্রয়োজন হবে না, আমরা কর্মচারি ক্লাসে তৈরি ফাংশন (মেথডও বলে) ব্যবহার করতে পারবো।

permanent link

answered 10 Nov, 08:00

Tamim%20Shahriar%20Subeen's gravatar image

Tamim Shahriar Subeen ♦♦
5.8k1026

Maybe you would like to give a check to this if it helps.

https://dotnetchef.wordpress.com/2016/10/03/why-oop-matters-in-software-development/

permanent link

answered 16 Nov, 07:25

arif_ahmed's gravatar image

arif_ahmed
311

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×25

question asked: 10 Nov, 07:00

question was seen: 128 times

last updated: 16 Nov, 07:25