Full Concept of Object Oriented Programming in Bangla??


অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর মূল ধারণা?
C# Programming

বন্ধুরা কেমন আছেন সবাই আজকে আমি আপনাদের সাথে কথা বলবো অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর  মূল ধারণা নিয়ে এই পোস্টটি পাডার পর আপনাদের অবজেক্ট অরিয়েন্টে প্রোগ্রামিং এর ধারণা ক্লিয়ার হয়ে  যাবে , আর যদি আপনার কাছে এই পোস্টটি ভালো লাগে অবশ্যই আপনার বন্ধুদের সাথে শেয়ার করবেন
এবার আসি মূল কথায় , অবজেক্ট প্রোগ্রামিং হলো সেই প্রেগ্রামিং যেখানে সবকিছুকে অবজেক্ট হিসাবে কল্পনা করা হয় যেমনঃ জাভা, সি++, পাইথন এগুলো সবই অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ল্যাংগুয়েজ

**অবজেক্ট কী??

অবজেক্ট এর নাম সুনে ভয় পাওয়ার কিছু নেই, করণ আমাদের চার পাশে যা কিছু আছে সবগুলো হলো এক  একটি অবজেক্ট যেমনঃ মোবইল, কম্পিউটার, বই , কলম, হেডপোন ইত্যাদি , কিন্তু প্রোগ্রামিং এর ভাষায় তো আর এভাবে বললে হবে না, প্রোগ্রামিং অবজেক্ট বলতে অন্যকিছু বুঝায় প্রোগ্রামিং অবজেক্ট বলতে বুঝায় অনেকগুলো ডাটা ফাংশানের সমন্বয়ে তৈরী হওয়া একটি বক্স শুধু  ডাটা ফাংশান থাকলে হবে না, ডাটগুলোকে রিলেটেড হতে হবে , অর্থাৎ একে অপরের সাথে সর্ম্পক থাকতে হবে ডাটাগুলোকে এমনভাবে লুকিয়ে রাখতে হবে যেন অন্য কোনো অবজেক্ট ডাটাগুলোকে দেখতে না পারে, আর এমন কিছূ ফাংশনালিটি থাকতে হবে যাতে করে অন্য অবজেক্ট অবজেক্ট সর্ম্পকে না জেনে একে ব্যবহার করতে পারে কথাগুলো একটু জটিল তাই না? একটা এক্সাম্পল দিলে সহজে বুঝতে পারবেন


 
এক্সাম্পল হিসাবে একটি MP-3 কথা চিন্তা করুন, MP-3 প্লেয়ার একটা অবজেক্ট , আর অবজেক্টটি ব্যাবহার করি আমরা, তার মানে একাটা অবজেক্ট আরেকটা অবেজেক্টকে ব্যবহার করে মিউজিক প্লেয়ারে কি থাকে ? অনেকগু গান থাকে যেগুলো হলো ডাটা,যা আমাদের কাছ থেকে  হাইড করা আছে , গান ছাড়াও অরো অনেক ইনফরমেশন থাকে যেগুলো আমাদের কাচ থেকে হাইড করা থাকে

আমরা জানি না, মিউজিক প্লেয়ারের গানগুলো কোথায় হাইড করা আছে,কোথায় থেকে এগুলো পাচ্ছে, সব ইন্টারনাল ফিসার আমাদের কে  দেয়া হয়ে একটি MP-3 প্লেয়ারের সাথে কিছু কন্ট্রোল দেয়া থাকে যার ফলে আমরা বাটন প্রেস করার মাধ্যমে গান সুনতে পারি, গান Stop করতে পারি  Pause , Next , Previous যাইতে পারি  volume  কমাতে বাডাতে পারি  ইত্যাদি

যদিও আমরা জানি না , মিউজিক প্লেয়ারটা কীভাবে তৈরী হয়েছে, কীভাবে এর মাধ্যমে কোনো বাটন ছাপ দিলে কাজ করছে এই যে মিউজিক প্লেয়ারটা একটা অবজেক্ট , এর ভিতরে যে গানগুলো আছেসেগুলো এক একটা অবজেক্ট, যেমন: একটা গানের ভিতরে আবার অনেকগুলো জিনিস থাকে , যেমন-গানের টাইটেল , গানের নাম, এলবামের নাম, গায়ওকের নাম এগুলোর সমন্বয়ে অবজেক্ট তৈরী হয় অবজেক্ট এর ধারনা তো ক্লিয়ার

**এবার আসি অরিয়েন্টেড টা কী??

একটা অবজেক্ট আরেকটা অবজেক্ট সর্ম্পকে না যেনে তার  ফাংশনালেটি ব্যবহার করতে পারে, তার ফাংশনালেটি নিজের ভিতর ধারন করতে পারে , সিস্টেমটাকে বলা হয় অবজেক্ট অরিয়েন্টেড
এবার আবার অবজেক্ট ফিরে আসি, এখন ডিরেক্ট প্রোগ্রামারদের ভাষায় অবজেক্ট কী সেটা বলি, অবজেক্ট হলো –Noun, Adjective and verb ছাড়া কিছুই না, কিন্তু কীভাবে??  

একটু আগে আমরা এক্সাম্পল দিয়েছিলাম MP-3 দিয়ে এবার এক্সাম্পল হলো  মোবাইল ফোন উপরের মোবাইল ফোনটি একটা অবজেক্ট, যেহেতু এটা একটা ফোন এর একটা নাম থাকবে, মড়েল থাকবে, ওয়াইড, হাইড, কালার, থাকবে এবং একটা দাম নির্ধারণ করা থাকবে আচ্ছা এখন বলেন তো নামটা কী?? অবশ্যই Noun নাম ছাড়া যে ফিল্ডগুলো আছে তারা কী, তারা Noun এর দোষ, গুণ ইত্যাদি বিচার বিশ্লেষন করছে আর Noun এর দোষ , গুন, বনণা করলে তাকে, Adjective বলে তাহলে নাম ছাডা বাকি পিল্ডগুলো হলো Adjective তাহলে Verb কী??
একটা ফোনে কী আছে? ক্যামেরা আছে যা দিয়ে ছবি তোলা যায়, এছাড়াও ভিডিও, অডিও , নেট ব্রাউজ করা ইত্যাদি অনেক কাজ করা যায় আর কাজ করাকে গ্রামারের ভাষায় Verb বলে আর Noun , Adjective , Verb, এর সমন্বয়ে অবজেক্ট তৈরী হয়

ক্লাস: অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং অবজেক্ট এর পরে যেটা আসে তাহলো ক্লাস ক্লাস হলো ইউজার ডিফাইন ডাটা টাইপ ক্লাস কিছু ডাটা বা অবজেক্ট থাকে সে গুলোকে এক্সেস করার জন্য কিছু ফাংশান থাকে


এখানে
আমরা ফোন নামের একটা ক্লাস বানিয়েছি, যার ভিতরে ফিল্ড হিসাবে আছে , Name,color  এবং Price. আর দুইটা মেথড আছে takepic() PlayMusic()  নামে এখানে কোনো কনষ্ট্রাকটর দেইনি, কনষ্ট্রাকটর না দিলে কম্পাইলার ডিফল্টভাবে একটা কনষ্ট্রাকটর ডিফাইন করে নেয়

**অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং - এনকেপস্যুালেশন :


আমরা প্রথমে বলেছিলাম অবজেক্টের ডাটাগুলো আমাদের কছে হাইড থাকে কিন্ত এখানে কোন ডাটা হাউড নেই এখন আমাদের ডাটাগুলোকে হাউড করতে হবে ডাটা হাউড করার জন্য প্রোপারটিগুলোর সামনে আমরা Private নামের কী-ওয়াডটি লাগিয়ে দিবো এবার আমার ডাটা হাউড হয়ে গেল এখন আরেকটা সমস্যা  তৈরী হলো, আমাদের তো ডাটাগুলো যদি অন্য অবজেক্ট এর কাছে হাইড হয়ে থাকে এগুলো তো কেউ এক্সেস করতে পারবে না। মিউজিক প্লেয়ারে আমাদের কাছে ডাটা না থাকলেও আমরাতো গান বাজাতে পারতাম, কারন সেখানে ফাংশনালিটি ছিল, কিন্ত এখানে ফাংশনালেটি কই ? কারণ এখানে কোন ফাংশনালেটি দেয়া হয়নি
অর্থাৎ প্রতিটি ফিল্ডের জন্য একটা করে getName(), setColor() মেথড দিতে হবে

এখন আমাদের ক্লাস রেডি

 
**
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংইনহেরিটেন্স :


এবার আসি  অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর সবছেয়ে গুরুত্বপূর্ন্য বিষয় ইনহেরিটেন্স কোন ক্লাসকে ইনহেরিট করতে হলে আমাদের কে Extends করতে হবে , আর কোন ইন্টরফেস কে ইনহেরিট করতে হলে আমাদের কে implement করতে হবে একটি ক্লাস প্রয়োজনে আরেকটি ক্লাস এর বৈশিষ্ট  ইনহেরিট করার প্রক্রিয়াকে ইনহেরিটেন্স বলে নিচে চিত্রে ইনহেরিটেন্স পক্রিয়া দেখানো হলো

 **অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংঅ্যাবস্ট্রাকশন:

ইনহেরিটেন্স  এর পর সবচেয়ে গুরুত্বপূন্য  বিষয় হলো অ্যাবস্ট্রাকশন ডাটা অ্যাবস্ট্রাকশন হলো  ডাটা-টাইপ বনণা করার এমন একটি কৌশল যেখানে কিছূ ডাটা থাকে এবং ডাটাগুলোকে এক্সেস করার জন্য কিছু ফাংশান থাকে তবে  ডাটা-টাইপের কোন ভেরিয়েবলের  ডাটা তার নিজস্ব ফাংশানের সাহায্যে ছাড়া অন্য কোনোভাবে এক্সেস করতে পারে না ।ডাটা অব্যাস্ট্রাকশন দুই ভাবে কাজ করা যায়

** অ্যাবস্ট্রাক ক্লসের মাধ্যমে


**ইন্টারফেসের মাধ্যমে


 এতক্ষন যা কিছু দেখলেন তা হলো একটা ক্লাস বা একটি টেমপ্লেট বানানোর প্রক্রিয়া টেমপ্লেটা টা ততক্ষন না কাজ করছে যতক্ষ এর একটা অবজেক্ট তৈরী করবেন এখন দেখি কীভাবে অবজেক্ট তৈরী করতে হয়

আবজেক্ট অরিয়েন্টেড প্রোগ্রামিং অবজেক্ট  ক্রিয়েশন :

প্রথমে
ক্লাসের নাম, তরপর অবজেক্ট এর নাম দিতে হবে, আপনি ভেরিয়েবলের মতো যে কোন নাম দিতে পারেন তারপর (=) নিউ দিতে হবে, নিউ কী-ওয়াড  টা বুঝায় আপনি এখন একটি নতুন টা অবজেক্ট ক্রিয়েট করতে ছাচ্ছেন এই নিউ কী-ওয়াডটা অবজেক্ট এর জন্য মেমোরি এল্যোকেট করে তারপর আবার ক্লাসের নামটা দিয়ে () পেরেনথেথিস দিতে হবে এবার আপনার নতুন অবজেক্ট তৈরী হয়ে গেল এখন আপনার অবজেক্ট টা হলো অবজেক্ট নেম এর ভিতর আছে , আপনি আপনার অবজেক্ট নেম কে কল করে আপনার অবজেক্ট এর সমস্ত ডাটাকে এখানে থেকে পেতে পারেন

এই পোস্টটি পরিচিতদের সাথে শেয়ার করুন

পূর্বের পোস্ট দেখুন পরবর্তী পোস্ট দেখুন
এই পোস্টে এখনো কেউ মন্তব্য করে নি
মন্তব্য করতে এখানে ক্লিক করুন

নীতিমালা মেনে কমেন্ট করুন। প্রতিটি কমেন্ট রিভিউ করা হয়।

comment url