জাভাস্ক্রিপ্ট ক্লাস ( JS Class)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট ব্যাসিক (JS Basic Tutorial) |
301
301

জাভাস্ক্রিপ্টে class একটি ব্লুপ্রিন্ট বা টেমপ্লেট হিসেবে কাজ করে, যা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি ES6 (ECMAScript 2015) এ পরিচিত হয় এবং প্রোটোটাইপ-ভিত্তিক অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণাকে ক্লাস-ভিত্তিক শৈলীতে রূপান্তর করে। class এর মাধ্যমে কোড আরও পাঠযোগ্য, রক্ষণাবেক্ষণযোগ্য এবং সংগঠিত হয়।


ক্লাস ডিফাইন করা

ক্লাস ডিফাইন করতে class কিওয়ার্ড ব্যবহার করা হয়। একটি ক্লাসের মধ্যে কনস্ট্রাক্টর (constructor) এবং মেথডস (methods) থাকতে পারে।

ক্লাসের সাদাসিধে উদাহরণ:

class Person {
    // কনস্ট্রাক্টর
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    // মেথড
    greet() {
        console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
    }
}

const person1 = new Person("Alice", 25);
person1.greet();  // আউটপুট: Hello, my name is Alice and I am 25 years old.

এখানে, Person একটি ক্লাস যা name এবং age প্রপার্টি গ্রহণ করে এবং একটি greet মেথড সংজ্ঞায়িত করে।


কনস্ট্রাক্টর (Constructor)

ক্লাসের মধ্যে constructor একটি বিশেষ মেথড যা নতুন অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। এটি সাধারণত ক্লাসের প্রপার্টি বা ফিল্ড ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।

class Car {
    constructor(make, model) {
        this.make = make;
        this.model = model;
    }

    displayInfo() {
        console.log(`Car make: ${this.make}, model: ${this.model}`);
    }
}

const car1 = new Car("Toyota", "Corolla");
car1.displayInfo();  // আউটপুট: Car make: Toyota, model: Corolla

এখানে, constructor মেথডটি ক্লাসের অবজেক্ট তৈরি করার সময় make এবং model প্রপার্টি ইনিশিয়ালাইজ করছে।


ইনহেরিটেন্স (Inheritance)

জাভাস্ক্রিপ্টে ক্লাসের মধ্যে ইনহেরিটেন্স (Inheritance) সুবিধা রয়েছে, যার মাধ্যমে একটি ক্লাস অন্য ক্লাসের প্রপার্টি ও মেথড উত্তরাধিকারসূত্রে পেতে পারে। এটি extends কিওয়ার্ডের মাধ্যমে করা হয়।

ইনহেরিটেন্স উদাহরণ:

class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log(`${this.name} makes a sound.`);
    }
}

class Dog extends Animal {
    constructor(name, breed) {
        super(name);  // প্যারেন্ট ক্লাসের কনস্ট্রাক্টর কল
        this.breed = breed;
    }

    speak() {
        console.log(`${this.name} barks.`);
    }
}

const dog1 = new Dog("Buddy", "Golden Retriever");
dog1.speak();  // আউটপুট: Buddy barks.

এখানে, Dog ক্লাস Animal ক্লাস থেকে ইনহেরিট করেছে এবং speak মেথডটি ওভাররাইড করেছে।


স্ট্যাটিক মেথড (Static Methods)

ক্লাসের স্ট্যাটিক মেথড একটি বিশেষ ধরনের মেথড যা ক্লাসের ইনস্ট্যান্স (অবজেক্ট) থেকে নয়, সরাসরি ক্লাস থেকে কল করা হয়। এটি সাধারণত ক্লাস-ভিত্তিক কাজ বা সহায়ক ফাংশন হিসেবে ব্যবহৃত হয়।

স্ট্যাটিক মেথড উদাহরণ:

class MathOperations {
    static add(a, b) {
        return a + b;
    }

    static multiply(a, b) {
        return a * b;
    }
}

console.log(MathOperations.add(3, 4));      // আউটপুট: 7
console.log(MathOperations.multiply(3, 4)); // আউটপুট: 12

এখানে, add এবং multiply দুটি স্ট্যাটিক মেথড ক্লাস থেকেই কল করা হয়েছে, কোনো ইনস্ট্যান্স তৈরি না করেই।


প্রাইভেট প্রপার্টি এবং মেথড (Private Properties and Methods)

জাভাস্ক্রিপ্ট ES2022-এ ক্লাসে প্রাইভেট প্রপার্টি ও মেথড সমর্থন করেছে, যার মাধ্যমে ক্লাসের ভিতরে প্রপার্টি বা মেথড শুধু সেই ক্লাস থেকেই অ্যাক্সেস করা যায়, বাইরের কোনো কোড থেকে নয়। এটি # চিহ্ন দিয়ে নির্ধারণ করা হয়।

প্রাইভেট প্রপার্টি উদাহরণ:

class Person {
    #name;  // প্রাইভেট প্রপার্টি

    constructor(name, age) {
        this.#name = name;  // প্রাইভেট প্রপার্টি অ্যাসাইন
        this.age = age;
    }

    greet() {
        console.log(`Hello, my name is ${this.#name} and I am ${this.age} years old.`);
    }
}

const person1 = new Person("Alice", 25);
person1.greet();  // আউটপুট: Hello, my name is Alice and I am 25 years old.

console.log(person1.#name);  // Error: Private field '#name' must be declared in an enclosing class

এখানে, #name একটি প্রাইভেট প্রপার্টি, যা শুধুমাত্র Person ক্লাসের ভিতরে অ্যাক্সেস করা যাবে।


সারাংশ

জাভাস্ক্রিপ্টের ক্লাস একটি শক্তিশালী বৈশিষ্ট্য যা অবজেক্ট ও শ্রেণিভিত্তিক প্রোগ্রামিং ধারণা সমর্থন করে। এটি প্রোটোটাইপ-ভিত্তিক জাভাস্ক্রিপ্টের জন্য একটি সংগঠিত উপায় সরবরাহ করে। ক্লাসে কনস্ট্রাক্টর, মেথড, ইনহেরিটেন্স, স্ট্যাটিক মেথড এবং প্রাইভেট প্রপার্টি/মেথডের মতো বৈশিষ্ট্য রয়েছে, যা কোডকে আরো সুশৃঙ্খল ও পাঠযোগ্য করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion