সকল অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং এর কোর তিনটি মৈলিক বৈশিষ্ট রয়েছে। সেগুলো হচ্ছেঃ
- Encapsulation
- Inheritance
- Polymorphism
Encapsulation হচ্ছে জাভা বা যেকোন অবজেক্ট অরিয়েন্টেড প্রোগ্রামের প্রধান বা মৈলিক বৈশিষ্ট।
ফেসবুকের প্রাইভেসি নিয়ে একটু আলোচনা করা যাক। আচ্ছা, আপনি আপনার প্রোফাইলে যেসব সুবিধে পাবেন তা অন্য কারো প্রোফাইলে পাবেন না। কিছু জিনিস থাকে পাবলিক, কিছু জিনিস থাকে প্রাইভেট আবার কিছু জিনিস থাকে শুধু আপনার বন্ধুরা দেখবে তাই না? সব কিছু যদি সবাই দেখতে পারত তাহলে কি অসুবিধেই না হতো তাই না?
তাহলে Encapsulation মানে কি তাই না?Encapsulation মানে হচ্ছে মোড়ানে, সব কিছুকে একটা প্যাকেটের মধ্যে ঢুকানো। প্রোগ্রামে এটা ব্যবহার করা হয় ডাটা লুকানোর জন্য। যে ডাটা গুলো পাবলিক যে গুলো যেন সবাই দেখতে পারে, যে গুলো প্রাইভেট সে গুলো যেন ঐ ডাটার মালিক ছাড়া আর কেউ না দেখতে পারে, এটা হচ্ছে Encapsulation এর কাজ।
Inheritance হচ্ছে একটা অবজেক্ট আরেকটা অবজেক্ট এর বৈশিষ্ঠ অর্জন করার প্রক্রিয়া।
প্রত্যেকটি ক্লাসের কিছু আট্রিবিউট থাকে আর কিছু মেথড থাকে।
বাই-চাইকেল এর কথা চিন্তা করি। চাইকেল গুলো অনেক রকম হয়, যেমন রোড বাইক, মাউন্টেন বাইক বা হাইব্রিড বাইক। এখন সব গুলো চাইকেল এর ই তো চাকা থাকে, টায়ার থাকে, প্যাডেল থাকে, ব্রেক থাকে ইত্যাদি ইত্যাদি।
একটার সাথে আরেকটার কিছু ফাংশনাল পার্থ্যক্য রয়েছে শুধু। ধরে নি আমরা চাইকেলের প্রোগ্রাম লিখব। প্রোগ্রামটি সহজে লেখার জন্য আমরা বার বার সব ধরনের আর্টিবিউট আর মেথড গুলো না লিখে জেনেরিক বা কমন মেথড গুলো এক সাথে একটা ক্লাসে লিখব। যার নাম হচ্ছে Bicycle. এবার যখন রোড বাইকের ক্লাস লিখব, তখন পুনরায় Bicycle এর বা কমন আর্টিবিউট আর মেথড গুলো না লিখে সে গুলোকে Bicycle ক্লাস থেকে নিয়ে আসব। আর এ প্রক্রিয়াই হচ্ছ ইনহেরিটেন্স।
Polymorphism সম্পর্কে জানার আগে এর ইংরেজী মিনিং কি তা বের করি কারন এটি একটি গীক শব্দ। Polymorphism ভাংলে পাওয়া যায় many (poly) shapes (morph) যার মানে হচ্ছে বহুরূপতা। প্রোগ্রামিং এ ও একই অর্থ বহন করে। একই জিনিসের বহু আকৃতি বা গঠনই হচ্ছে Polymorphism, এটি আসলেই অনেক ভালো একটা বৈশিষ্ট। ভালো মানের পোগ্রাম লেখার সময় অনেক ভালো কাজ করে। আর কোডের পরিমান ও কমিয়ে দেয়।
Thanks for your post. I hope more post form you.
Great. Thanks.
Inheritance সর্ম্পেকে বললেন না?
very nice bro 🙂
vaiya , aponar ki youtube tutorial ase ??
লেখার ধরন অনেক সুন্দর ও গোছানো। ধন্যবাদ ভাইয়া।