OOP পরিচিতি ও দর্শন

লেসন ১ / ৩৯

Object-Oriented Programming (OOP) কী?

OOP হলো একটি programming paradigm যেখানে কোডকে Object এর চারপাশে সংগঠিত করা হয়। প্রতিটি object হলো data (properties) + behavior (methods) এর সমষ্টি।

বাস্তব জীবনের analogy

একটি "গাড়ি" object দেখুন:

  • Properties (তথ্য) — রং, মডেল, ইঞ্জিন, চাকা
  • Methods (কাজ) — স্টার্ট হওয়া, চলা, থামা, হর্ন দেওয়া

বিভিন্ন গাড়ি একই "blueprint"-এর বিভিন্ন instance। এই blueprint-ই Class, আর প্রতিটি গাড়ি হলো Object।

Procedural vs OOP

// ❌ Procedural (পুরনো পদ্ধতি)
$studentName = "করিম";
$studentAge = 25;
$studentMarks = [80, 90, 75];

function getAverage($marks) {
    return array_sum($marks) / count($marks);
}
echo getAverage($studentMarks);

// ✅ OOP (আধুনিক)
class Student {
    public $name;
    public $age;
    public $marks = [];

    public function getAverage() {
        return array_sum($this->marks) / count($this->marks);
    }
}

$s = new Student();
$s->name = "করিম";
$s->marks = [80, 90, 75];
echo $s->getAverage();

OOP-র ৪টি মূলনীতি (4 Pillars)

  1. Encapsulation (আবদ্ধকরণ) — ডেটা ও method একসাথে বাঁধা, ভিতরের বিস্তারিত লুকানো
  2. Inheritance (উত্তরাধিকার) — একটি class অন্য class থেকে বৈশিষ্ট্য পায়
  3. Polymorphism (বহুরূপতা) — একই নামের method বিভিন্ন ভাবে কাজ করে
  4. Abstraction (বিমূর্তকরণ) — জটিলতা লুকিয়ে শুধু প্রয়োজনীয়টা দেখানো

OOP কেন ব্যবহার করবেন?

  • Reusability — কোড বারবার ব্যবহার করা যায়
  • Maintainability — সহজে update/debug করা যায়
  • Scalability — বড় প্রজেক্টে কার্যকর
  • Real-world modeling — বাস্তব জগতের সাথে মিল
  • Team collaboration — একাধিক ডেভেলপার একসাথে কাজ করতে পারে

OOP ব্যবহার করে যে ভাষাগুলো

PHP, Java, C++, C#, Python, JavaScript, Kotlin, Swift, Ruby — প্রায় সব আধুনিক ভাষাই OOP সাপোর্ট করে।