Object কি?
আমরা আমাদের চার পাশে যা কিছু দেখি তার সবই Object বা বস্তু। এই ধরুন আপনি আপনার নিজেকে এবং আপনার আসে-পাশের দিকে খেয়াল করুন , আপনার গায়ের জামা, আপনার পরনের প্যান্ট, হাতের মোবাইল, পড়ার টেবিল,বসার চেয়ার ,কম্পিউটার এই সবই একেকটি Object বা বস্তু। এমনকি আপনি / আমি নিজেও একটা Object.
class কি?
Object সম্পর্কে তো জানা হলো , চলুন এবার জানি class কি? class হচ্ছে Object এর replica (অবিকল প্রতিরুপ) বা blueprint (নীলনকশা)। ধরুন আমরা একটি চেয়ার বানাতে চাই, শুরুতে আমরা কোন রকম চিন্তা ভাবনা না করে ফু দিয়ে একটা চেয়ার বানিয়ে ফেলতে পারি না। আমরা এর জন্যে পরিকল্পনা করি- চেয়ারটা দেখতে কেমন হবে, এটি দৈর্ঘ্য, প্রস্থ এবং উচ্চতা কতটুকু হবে, চেয়ারটি কি কি কাজ করবে ইত্যাদি। এই পরিকল্পনা গুলো আমরা আমরা কোথাও লিখে রাখি। আমাদের এই লেখা ডকুমেন্টটি আসলে class. আরেকটু ব্যাখ্যা করে বলতে গেলে আমরা বলতে পারি যে একটা অবজেক্ট কেমন হবে তা যেখানে নির্ধারণ করা থাকে তার নাম class। এই ক্লাস দিয়ে তৈরি অবজেক্টকে ঐ ক্লাসের অস্তিত্ব(Instance) বলে।
PHP OOP Basics: Object Oriented Programming কি?
এখন প্রশ্ন হল, তাহলে PHPP (OOP) Object Oriented Programming কি? Computer Programming এ class এবং Object এর ধারণাকে কাজে লাগিয়ে যে Programming করা হয় তাকেই বলা হয় PHP (OOP) Object Oriented Programming। অবজেক্ট ওরিয়েন্ট কনসেপ্ট তিনটি ধারণার উপর প্রতিষ্ঠিত:
- Inheritance-ইংরেজি শব্দ inheritance অর্থ হচ্ছে উত্তরাধিকার। Object Oriented Programming এ এক class থেকে কিছু ফাংশনালিটি (Methods) ও বৈশিষ্ট্য (Property) অন্য class এ শেয়ার করার একটা পদ্ধতি হচ্ছে Inheritance. বা কোন Class বা Object এ অন্য কোন Class বা Object এর বৈশিষ্ট্য অর্জন করে থাকে যে প্রক্রিয়ায় তাকে উত্তরাধিকার সূত্র বা Inheritance বলে। আরো সহজ ভাবে বলা যায় , একটা ক্লাসকে (Parent Class) Inherit (অনুসরণ) করে তার কিছু বৈশিষ্ট্য আরেকটি উত্তরসূরি (child class) এর মধ্যে ব্যবহার করার প্রক্রিয়াকে Inheritance বলা হয়।
- encapsulation-অর্থাৎ সব কিছু encapsulate অবস্থায় থাকা। অনেকটা ক্যাপসুল মেডিসিন এর মতোই , যেভাবে একটা capsule এর বাইরে একটা আবরণ দিয়ে সব কিছু ভেতরে আটকানো থাকে । একই ভাবে Object Oriented Programming এ একটা class এর আবরণ দিয়ে সব কিছু ভেতরে আটকানো থাকে।
- polymorphism – বহুরূপিতা। অর্থাৎ একটা অবজেক্ট নানা সময় নানা রকম রূপ ধারণ করতে পারে বা বহুরূপে ব্যবহৃত হতে পারে।
PHP OOP Basics: Object Oriented Programming শেখার আগে কি কি বিষয় জানতে হবে?
PHP তে Object Oriented Programming শেখার আগে যেসব বিষয় জানা আবশ্যক?
- Parent Class: একটি class থেকে যখন অন্য একটা class inherits বা উত্তরাধিকার সূত্রে তৈরী হয় , তখন যেই class থেকে নতুন class টি তৈরী হয়, তাকে Parent class বলা হয়। Parent class কে base class বা super class ও বলে।
- Child Class:একটি class যখন অন্য একটা class থেকে inherits বা উত্তরাধিকার সূত্রে তৈরী হয় , তখন তাকে child class বলা হয়। child class কে subclass বা derived class ও বলে।
- Visibility/Access modifier:
ইংরেজি শব্দ visibility অর্থ দৃশ্যমানতা, অর্থাৎ class এর মধ্যে যেকোনো property,constant অথবা Method এ কে access পাবে তা visibility দিয়ে নির্ধারিত হয়। Visibility গুলো সাধারণত class এর মধ্যে constant,property, method এর আগে ঘোষণা করতে হয়।PHP তে Visibility তিন ধরনের:https://w3programmers.com/bangla/php-course/- private :Class এর মধ্যে constant, property, method গুলোকে যদি শুধু একই class বা class নিজের মধ্যে ব্যবহার সীমিত রাখতে চাই , তাহলে সেইসব constant, property, method গুলোকে private ঘোষণা করতে হয়।
- protected: Class এর মধ্যে constant, property, method গুলোকে যদি শুধু একই class বা class নিজের মধ্যে এবং তার child class এর মধ্যে ব্যবহার সীমিত রাখতে চাই , তাহলে সেইসব constant, property, method গুলোকে protected ঘোষণা করতে হয়।
- public: Class এর মধ্যে constant, property, method গুলোকে যদি একই class বা class নিজের মধ্যে , child class এবং class এর বাহির থেকে ব্যবহার রাখতে চাই , তাহলে সেইসব constant, property, method গুলোকে public ঘোষণা করতে হয়।
- Property: PHP OOP তে class এর মধ্যে অবস্থিত variable গুলিকে Property বলা হয়। Property গুলোকে “attributes” বা “fields” নামেও ডাকা হয়।PHP তে Property গুলোকে যেকোনো একটা visibility অর্থাৎ : public, private, protected এর যেকোনো একটি visibility সহ ডিফাইন করতে হয়।
- Method: PHP তে class এর মধ্যে অবস্থিত function গুলিকে Method বলা হয়। PHP তে Method গুলোকে যেকোনো একটা visibility অর্থাৎ : public, private, protected এর যেকোনো একটি visibility সহ declare বা ঘোষণা করতে হয়।
- static keyword: class এর যেকোনো property এবং method এ কোন রকম instance বা object ছাড়া access করার সুযোগ দিতে চাইলে বা সরাসরি class দিয়ে access করার সুযোগ দিতে চাইলে static keyword ব্যবহৃত হয়।
- “::” scope resolution operator PHP তে class এর মধ্যে অবস্থিত যেকোনো static property, static method এবং constant কে class এর ভিতরে অথবা বাহিরে যেকোনো কাজে ব্যবহার করতে চাইলে “:: scope resolution operator” ব্যবহার করতে হয়।
- “$this” pseudo-variable: “$this” pseudo-variable টি মূলত current class এর object কে ধারণ করে। PHP তে class এর মধ্যে অবস্থিত যেকোনো Non-static property এবং Non-static method কে class এর মধ্যেই যেকোনো কাজে ব্যবহার করতে চাইলে “$this” pseudo-variable ব্যবহার করতে হয়।