7.3 জাভাস্ক্রিপ্টে ক্লাস কি? 

ক্লাস হলো এমন একটি টেম্পলেট যা ভ্যারিয়েবল এবং ফাংশনের সমন্বয়ে তৈরি। শুনতে তো অবজেক্ট এর মতোই হয়ে গেল তাইনা? আরেকটু ভালোভাবে ভাবে বলতে গেলে, ক্লাস হলো একধরণের blueprint যা থেকে সুনির্দিষ্ট অবজেক্ট তৈরি করা হয়। ক্লাসের মধ্যেও Attributes এবং Function থাকে যাদেরকে Method বলা হয়। নিচের কোডটি খেয়াল করিঃ

class Car {
    constructor(color, brand, model){
        this.color = color;
        this.brand = brand;
        this.model = model;
    }
    repaint(){
        this.color = "Red";
    }
}

const myCar = new Car("Black", "Doge", "Charger");
const helensCar = new Car("Blue", "Nissan", "Ultima");

 

আমরা একটা Car নামে ক্লাস তৈরি করেছি। তার মধ্যে properties হিসেবে color, brand এবং model দিয়েছি। এবং তার মধ্যে repaint নামে একটি মেথড দিলাম যা গাড়ির রং পরিবর্তন করে। তারপর এই ক্লাস থেকে আমরা দুইটি ‘Car’ টাইপের অবজেক্ট myCar এবং helensCar তৈরি করেছি।এখন আমরা চাইলে এই ক্লাস থেকে হাজারটা অবজেক্টও তৈরি করতে পারব এবং প্রত্যেকটা অবজেক্টেরই ইউনিক প্রোপার্টি থাকবে।

ক্লাসের কোড তো দেখলাম। এখন আমাদের মনে প্রশ্ন জাগতে পারে যে Car ক্লাসের মধ্যে constructor জিনিসটা আবার কি? constructor একটি স্পেশাল ধরণের ফাংশন যার সাহায্যে অবজেক্ট কে ইনিশিয়ালাইজ করা যায়। আরেকটু সহজ করে বলতে গেলে, এটি এমন একধরনের ফাংশন যা নিজেকে নিজেই কল করে। আমরা যখন ‘new’ keyword ব্যবহার করে কোনো ক্লাসের অবজেক্ট তৈরি করি, তখনই সাথে সাথেই constructor ফাংশনটি কল হয় এবং অবজেক্টের মধ্যে কোন ভ্যালু সেট করে দিলে constructor এর মধ্যে সেগুলো এসাইন হয়ে যায়। ‘new’ keyword এর ব্যবহার নিয়ে আমরা পরবর্তীতে বিস্তারিত আলোচনা করব। constructor এর কাজই হচ্ছে অবজেক্ট তৈরি করা এবং অবজেক্টের কোনো প্রোপার্টি থাকলে তাদের ভ্যালু সেট করা। এটা অবজেক্ট তৈরি করার খুবই সহজ পদ্ধতি কারণ আমাদের কষ্ট করে অবজেক্ট রিটার্ন করতে হয়না। জাভাস্ক্রিপ্টে কোনো ক্লাস তৈরি করার সময় অটোম্যাটিক constructor তৈরি হয়ে যায়, কোনো প্যারামিটার ছাড়াই।

constructor(){

}
উদাহরন
  • Person নামের একটি ক্লাস তৈরি করা হয়েছে যার name ও age নামের ২ টি এট্রিবিউট আছে যা কন্সট্রাক্টরের মধ্যে ইনিশিয়ালাইজ করা হয়েছে এবং এর printName নামের একটি মেথড রয়েছে।
class Person{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
    printName(){
        console.log(name);
    }
}

//creating object of the Person class
const new_person = new Person('Alex', 20)

 

  • Rectangle নামের একটি ক্লাস তৈরি করা হয়েছে যার height ও width নামের ২ টি এট্রিবিউট আছে যা কন্সট্রাক্টরের মধ্যে ইনিশিয়ালাইজ করা হয়েছে এবং এর getHeight ও getWidth নামের দুটি মেথড রয়েছে.
    class Rectangle {
      constructor(height, width) {
        this.height = height;
        this.width = width;
      }
      getHeight(){
        return this.height;
      }
      getWidth(){
        return this.width;
      }
    }
    
    const rectangle20x30 = new Rectangle(20,30);
এসো নিজে করি
  •  Animal নামের একটি ক্লাস তৈরি কর যার মধ্যে name, color, canFly(boolean), canswimm(boolean) নামের এট্রিবিউট এবং speak, eat, run নামের ৩ টি মেথড থাকবে।
  • const myCar = {
      make: 'Ford',
      model: 'Mustang',
      year: 1969,
      start: function(){
          console.log('Engine started');
        },
      stop: function(){
        console.log('Engine stoped');
        }
    };

    উপরোক্ত অবজেক্ট টিকে ক্লাসে রূপান্তরিত কর এবং অবজেক্ট ক্রিয়েট কর।

  • ক্লাস কেন ব্যবহার করা হয় অব্জেক্ট তৈরির জন্যে?
  • ক্লাসের মধ্যে this কিওয়ার্ড এর কাজ কি?
  • মেথড ও কন্সট্রাক্টটর আলাদা কীভাবে?