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

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট ক্লাস (JS Class) |
299
299

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


ক্লাস কি?

ক্লাস হল একটি কাঠামো যা নির্দিষ্ট ধরনের অবজেক্ট তৈরি করতে ব্যবহৃত হয়। প্রতিটি ক্লাসের মধ্যে কনস্ট্রাক্টর এবং মেথড থাকে, যা অবজেক্টের প্রপার্টি এবং কার্যকলাপ নির্ধারণ করে।

উদাহরণ:

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
    }
}

const person1 = new Person("আলিস", ২৫);
person1.greet();  // আউটপুট: হ্যালো, আমার নাম আলিস এবং আমি ২৫ বছর বয়সী।

ক্লাসের প্রধান উপাদান

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

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

মেথড (Methods)

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


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

ইনহেরিটেন্স হল ক্লাসগুলির মধ্যে সম্পর্ক স্থাপন করার একটি পদ্ধতি, যেখানে একটি ক্লাস অন্য ক্লাসের বৈশিষ্ট্য এবং মেথড উত্তরাধিকারসূত্রে পায়। এটি কোড পুনরায় ব্যবহারযোগ্যতা বৃদ্ধি করে এবং ক্লাসগুলির মধ্যে সম্পর্ক স্পষ্ট করে।

উদাহরণ:

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

    speak() {
        console.log(`${this.name} একটি শব্দ করে।`);
    }
}

class Dog extends Animal {
    speak() {
        console.log(`${this.name} ডাঁড়ায়।`);
    }
}

const dog1 = new Dog("বাডি");
dog1.speak();  // আউটপুট: বাডি ডাঁড়ায়।

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

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

উদাহরণ:

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

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

console.log(MathOperations.add(৩, ৪));      // আউটপুট: ৭
console.log(MathOperations.multiply(৩, ৪)); // আউটপুট: ১২

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

ES2022 থেকে, জাভাস্ক্রিপ্টে প্রাইভেট প্রপার্টি এবং মেথড সমর্থন করা হয়েছে। এগুলি ক্লাসের বাইরে থেকে অ্যাক্সেস করা যায় না, যা ডেটা হাইডিং এবং ইনক্যাপসুলেশন নিশ্চিত করে।

উদাহরণ:

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

    constructor(name, age) {
        this.#name = name;
        this.age = age;
    }

    greet() {
        console.log(`হ্যালো, আমার নাম ${this.#name} এবং আমি ${this.age} বছর বয়সী।`);
    }
}

const person1 = new Person("বব", ৩০);
person1.greet();  // আউটপুট: হ্যালো, আমার নাম বব এবং আমি ৩০ বছর বয়সী।
console.log(person1.#name);  // Error: Private field '#name' must be declared in an enclosing class

ক্লাসের অন্যান্য বৈশিষ্ট্য

গেটার এবং সেটার (Getters and Setters)

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

উদাহরণ:

class Rectangle {
    constructor(width, height) {
        this.width = width;
        this.height = height;
    }

    // গেটার
    get area() {
        return this.width * this.height;
    }

    // সেটার
    set area(value) {
        this.height = value / this.width;
    }
}

const rect = new Rectangle(১০, ৫);
console.log(rect.area);  // আউটপুট: ৫০

rect.area = ১০০;
console.log(rect.height);  // আউটপুট: ১০

ক্লাস বনাম ফাংশন

জাভাস্ক্রিপ্টে ক্লাস এবং ফাংশন উভয়ই অবজেক্ট তৈরি করতে ব্যবহৃত হয়, তবে ক্লাস ব্যবহার করলে কোড আরও পরিষ্কার এবং সংগঠিত হয়। ক্লাসের সিনট্যাক্স ফাংশন ভিত্তিক পদ্ধতির তুলনায় বেশি পাঠযোগ্য এবং রক্ষণাবেক্ষণযোগ্য।

উদাহরণ:

ফাংশন ভিত্তিক:

function Person(name, age) {
    this.name = name;
    this.age = age;
}

Person.prototype.greet = function() {
    console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
};

const person1 = new Person("সারা", ২৮);
person1.greet();  // আউটপুট: হ্যালো, আমার নাম সারা এবং আমি ২৮ বছর বয়সী।

ক্লাস ভিত্তিক:

class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    greet() {
        console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
    }
}

const person1 = new Person("সারা", ২৮);
person1.greet();  // আউটপুট: হ্যালো, আমার নাম সারা এবং আমি ২৮ বছর বয়সী।

সারাংশ

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


অতিরিক্ত টিপস

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

ক্লাস সম্পর্কে গভীর জ্ঞান অর্জন করলে আপনার জাভাস্ক্রিপ্ট প্রোগ্রামিং দক্ষতাও বৃদ্ধি পাবে, যা আরও উন্নত এবং কার্যকরী কোড লেখার ক্ষেত্রে সহায়ক হবে।

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

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

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

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