প্রোগ্রামিংয়ের মৌলিক ধারণা/অবজেক্ট এবং ক্লাস
সংক্ষিপ্ত বিবরণ
[সম্পাদনা]অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) হল একটি প্রোগ্রামিং রীতি, যা "অবজেক্ট" ধারণার ওপর ভিত্তি করে গঠিত। এই অবজেক্টগুলোর মধ্যে তথ্য (যাকে ক্ষেত্র বা অ্যাট্রিবিউট বলা হয়) এবং প্রক্রিয়া বা কোড (যাকে সাধারণত মেথড বলা হয়) থাকতে পারে। অবজেক্টের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হলো, এর মেথড বা প্রক্রিয়াগুলো সংশ্লিষ্ট অবজেক্টের তথ্যক্ষেত্রে প্রবেশ করতে পারে এবং প্রয়োজনে তা পরিবর্তনও করতে পারে (এখানে অবজেক্টগুলোর একটি “this” বা “self” ধারণা থাকে)। অবজেক্ট নির্ভর প্রোগ্রামিং ভাষার মধ্যে উল্লেখযোগ্য বৈচিত্র্য দেখা যায়, তবে সবচেয়ে জনপ্রিয় ভাষাগুলো ক্লাসভিত্তিক। অর্থাৎ, অবজেক্টগুলো ক্লাসের উদাহরণ (instance), এবং এই ক্লাসগুলোই সাধারণত তাদের ধরন (type) নির্ধারণ করে।[১]
আলোচনা
[সম্পাদনা]এ পর্যন্ত আমরা পদ্ধতিগত প্রোগ্রামিং-এর উপর গুরুত্ব দিয়েছি। কাঠামোগত প্রোগ্রামিংয়ের ভিত্তিতে প্রক্রিয়াগুলো (যেমন রুটিন, সাবরুটিন বা ফাংশন) এমন একাধিক গণনামূলক ধাপ নিয়ে গঠিত, যা সম্পাদন করতে হয়। একটি নির্দিষ্ট প্রক্রিয়া যেকোনো সময়ে, এমনকি অন্য কোনো প্রক্রিয়া কিংবা নিজের দ্বারাও আহ্বান (call) করা যেতে পারে। পদ্ধতিগত প্রোগ্রামিং-এর মূল লক্ষ্য হলো একটি প্রোগ্রামিং কাজকে পরিবর্তনশীল (variable), ডেটা স্ট্রাকচার এবং সাবরুটিনসমূহে বিভাজন করা।[২] ছোট প্রোগ্রাম এবং স্ক্রিপ্টগুলি একটি সহজ পদ্ধতিগত পদ্ধতি ব্যবহার করে তৈরি করা সহজ হয়।
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং একটি প্রোগ্রামিং কাজকে বিভাজন করে অবজেক্টে, যেগুলো ইন্টারফেসের মাধ্যমে তাদের আচরণ (মেথড) ও তথ্য (সদস্য বা অ্যাট্রিবিউট) প্রকাশ করে। এখানে সবচেয়ে গুরুত্বপূর্ণ পার্থক্য হলো— যেখানে প্রক্রিয়াভিত্তিক প্রোগ্রামিং আলাদা ডেটা স্ট্রাকচারের উপর প্রক্রিয়াগুলো প্রয়োগ করে, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং সেখানে এই দুটি (প্রক্রিয়া ও ডেটা) একত্রে একটি একক সত্তা হিসেবে অবজেক্টে সংযুক্ত করে। একটি অবজেক্ট, যা একটি ক্লাসের উদাহরণ, তা নিজস্ব ডেটা স্ট্রাকচারের উপর নিজেই কার্য পরিচালনা করে।[৩] বৃহত্তর প্রোগ্রামগুলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং পদ্ধতির মাধ্যমে কোড ও ডেটার উন্নত বিচ্ছিন্নতা ও পুনঃব্যবহারযোগ্যতার সুবিধা লাভ করে।
অবজেক্ট এবং ক্লাসগুলি প্রায়ই বাস্তব বিশ্বের অবজেক্টগুলোর প্রতিনিধিত্ব করার জন্য নকশা করা হয়। উদাহরণস্বরূপ, একটি দরজাকে বাস্তব বিশ্বের একটি অবজেক্ট হিসেবে বিবেচনা করা যাক। অধিকাংশ দরজার কার্যকারিতা সীমিত — যেমন, দরজাটি খোলা ও বন্ধ করা যায় এবং তা লক বা আনলক করা যায়। পদ্ধতিগত প্রোগ্রামিং-এ আমরা দরজা খোলা, বন্ধ করা, লক ও আনলক করার জন্য বিভিন্ন ফাংশন ডিজাইন করতে পারি, যেমন:
Procedural Programming - Functions OpenDoor(door) CloseDoor(door) LockDoor(door) UnlockDoor(door)
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং কোড ও ডেটাকে একত্রিত করে, যাতে করে আলাদা ফাংশনের মাধ্যমে দরজার উপর আলাদা ফাংশন কাজ করার পরিবর্তে, আমরা এমন দরজা ডিজাইন করি যেগুলোর নিজস্ব মেথড থাকে, যা তারা নিজের উপর প্রয়োগ করতে পারে। মেথড হচ্ছে সেই কাজ বা কার্যপ্রক্রিয়া যা একটি অবজেক্ট সম্পাদন করতে পারে, এবং এগুলো সাধারণত ক্রিয়াপদ হিসেবে সংজ্ঞায়িত করা হয়। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ একটি দরজার স্যুডোকোড সাধারণত এ রকম হতে পারে:
Object-Oriented Programming - Methods door.Open() door.Close() door.Lock() door.Unlock()
অবজেক্টের অ্যাট্রিবিউট বা বৈশিষ্ট্যও থাকতে পারে— অর্থাৎ অবজেক্ট কী বা কী রয়েছে তার মধ্যে। এই অ্যাট্রিবিউটগুলো সাধারণত বিশেষ্য বা বিশেষণ ব্যবহার করে সংজ্ঞায়িত করা হয়। দরজার ক্ষেত্রে সম্ভাব্য অ্যাট্রিবিউট হতে পারে:
Object-Oriented Programming - Attributes door.Height door.Width door.Color door.Closed door.Locked
যখন আমরা একটি সাধারণ দরজা সংজ্ঞায়িত করার জন্য কোড লিখি তখন আমরা একটি দরজা ক্লাস তৈরি করি। এই দরজা ক্লাস এর মধ্যে একটি দরজা যা যা কাজ করতে পারে সেই সব মেথড এবং দরজার সম্ভাব্য সব অ্যাট্রিবিউট অন্তর্ভুক্ত থাকবে। এরপর আমরা এই ক্লাস থেকে নির্দিষ্ট দরজার প্রতিনিধিত্বকারী অবজেক্ট বা উদাহরণ তৈরি করব— যেমন, একটি বাড়ির সামনের দরজা, পিছনের দরজা বা ঘরের দরজা অথবা একটি গাড়ির বাম পাশের দরজা ও ডান পাশের দরজা।
গুরুত্বপূর্ণ পরিভাষা
[সম্পাদনা]- অ্যাট্রিবিউট
- একটি নির্দিষ্টকরণ যা একটি অবজেক্টের গুণ বা বৈশিষ্ট্য সংজ্ঞায়িত করে।[৪]
- ক্লাস
- একটি সম্প্রসারণযোগ্য প্রোগ্রাম-কোড-টেমপ্লেট যা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়, যেখানে অবজেক্টের অবস্থার জন্য প্রাথমিক মান (সদস্য পরিবর্তনশীল) এবং আচরণের বাস্তবায়ন (সদস্য ফাংশন বা মেথড) প্রদান করা হয়।[৫]
- উদাহরণ (instance)
- কটি অবজেক্টের একটি নির্দিষ্ট বা বাস্তব ঘটনা।[৬]
- পদ্ধতি (মেথড)
- একটি নির্দিষ্টকরণ যা একটি অবজেক্টের প্রক্রিয়া বা আচরণ সংজ্ঞায়িত করে।[৭]
- অবজেক্ট
- একটি ক্লাসের একটি নির্দিষ্ট উদাহরণ (instance), যেখানে অবজেক্টটি পরিবর্তনশীল, ফাংশন এবং ডেটা স্ট্রাকচারের একটি সংমিশ্রণ হতে পারে।[৮]
- দিস, সেলফ বা মি
- কিছু কম্পিউটার প্রোগ্রামিং ভাষায় ব্যবহৃত কিওয়ার্ড, যা চলমান কোডের অংশ যে অবজেক্ট, ক্লাস বা অন্যান্য সত্তার প্রতি ইঙ্গিত করে।[৯]
তথ্যসূত্র
[সম্পাদনা]- অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
- W: অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
- Wikiversity: কম্পিউটার প্রোগ্রামিং
- ↑ Wikipedia: Object-oriented programming
- ↑ Wikipedia: Object-oriented programming
- ↑ Wikipedia: Object-oriented programming
- ↑ Wikipedia: Attribute (computing)
- ↑ Wikipedia: Class (computer programming)
- ↑ Wikipedia: Instance (computer science)
- ↑ Wikipedia: Method (computer programming)
- ↑ Wikipedia: Object (computer science)
- ↑ Wikipedia: this (computer programming)