Class ও Object

লেসন ২ / ৩৯

Class কী?

Class হলো একটি blueprint বা template — যা থেকে object তৈরি হয়। Class নিজে কিছু না, সে শুধু বর্ণনা করে object দেখতে কেমন হবে।

Object কী?

Object হলো class-এর একটি instance — বাস্তব একটি entity যা memory তে জায়গা দখল করে।

📋 Class = রেসিপি (কাগজে লেখা)
🍰 Object = আসল কেক (তৈরি করা)

একটি রেসিপি থেকে অনেক কেক বানানো যায়।
একটি Class থেকে অনেক Object তৈরি করা যায়।

PHP-তে Class ও Object

<?php
// Class definition
class Car {
    // Properties (attributes)
    public $brand;
    public $model;
    public $color;
    public $speed = 0;

    // Methods (functions)
    public function start() {
        echo "{$this->brand} গাড়ি স্টার্ট হলো\n";
    }

    public function accelerate($value) {
        $this->speed += $value;
        echo "গতি এখন: {$this->speed} km/h\n";
    }

    public function brake() {
        $this->speed = 0;
        echo "গাড়ি থেমে গেছে\n";
    }
}

// Object তৈরি (instantiation)
$car1 = new Car();
$car1->brand = "Toyota";
$car1->model = "Corolla";
$car1->color = "সাদা";

$car2 = new Car();
$car2->brand = "Honda";
$car2->model = "Civic";
$car2->color = "কালো";

// Method কল
$car1->start();          // Toyota গাড়ি স্টার্ট হলো
$car1->accelerate(50);   // গতি এখন: 50 km/h
$car1->brake();

$car2->start();          // Honda গাড়ি স্টার্ট হলো
?>

$this কীওয়ার্ড

$this হলো বর্তমান object-এর রেফারেন্স। Method এর ভিতর থেকে object-এর properties/methods access করতে ব্যবহৃত হয়।

class Person {
    public $name;

    public function setName($name) {
        $this->name = $name;  // এই object-এর name সেট হবে
    }

    public function greet() {
        echo "হ্যালো, আমি {$this->name}";
    }
}

$p = new Person();
$p->setName("করিম");
$p->greet();  // হ্যালো, আমি করিম

একাধিক Object — স্বতন্ত্র state

$p1 = new Person();
$p1->setName("করিম");

$p2 = new Person();
$p2->setName("রহিম");

echo $p1->name;  // করিম (p1 এর নিজস্ব)
echo $p2->name;  // রহিম (p2 এর নিজস্ব)
💡 প্রতিটি object-এর নিজস্ব মান থাকে, তবে method গুলো সবাই শেয়ার করে।