জাভাস্ক্রিপ্টে Class হল একই ধরনের object তৈরি করার জন্য একটি template বা কাঠামো। একটি class-এর মধ্যে property এবং method নির্ধারণ করা যায় এবং পরে সেই class ব্যবহার করে একাধিক object তৈরি করা যায়।
ES6 থেকে জাভাস্ক্রিপ্টে class syntax ব্যবহার করে object-oriented programming আরও সহজভাবে লেখা যায়। Class নিজে সাধারণত object-এর template হিসেবে কাজ করে এবং new keyword ব্যবহার করে class থেকে নতুন object তৈরি করা হয়।
classএকটি class তৈরির সাধারণ syntax হল:
class Student { constructor(name, age) { this.name = name; this.age = age; } introduce() { return "আমার নাম " + this.name; } }
Class তৈরি করার পর new keyword ব্যবহার করে সেই class থেকে নতুন object তৈরি করা যায়। প্রতিটি object-এর নিজস্ব property value থাকতে পারে।
একই class থেকে প্রয়োজন অনুযায়ী অনেকগুলো object তৈরি করা সম্ভব। এতে একই ধরনের object-এর জন্য বারবার একই structure লিখতে হয় না।
newnew keyword class-এর একটি নতুন instance তৈরি করে।
class Student { constructor(name) { this.name = name; } } let student1 = new Student("Rahim"); let student2 = new Student("Karim"); console.log(student1.name); console.log(student2.name);
Class-এর constructor() হল একটি বিশেষ method। কোনো class থেকে new keyword দিয়ে object তৈরি করার সময় constructor স্বয়ংক্রিয়ভাবে execute হয়।
Constructor-এর মাধ্যমে object-এর প্রাথমিক property value নির্ধারণ করা যায়। একটি class-এ সাধারণত একটি constructor method থাকে।
constructor()constructor-এর parameter-এর মাধ্যমে নতুন object তৈরি করার সময় বিভিন্ন value পাঠানো যায়।
class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } } let employee = new Employee("Anik", 30000); console.log(employee.name); console.log(employee.salary);
Class-এর ভিতরে function লিখলে তাকে সাধারণত method বলা হয়। Method ব্যবহার করে class থেকে তৈরি object-এর বিভিন্ন কাজ নির্ধারণ করা যায়।
Class-এর method লেখার সময় সাধারণ function-এর মতো function keyword ব্যবহার করার প্রয়োজন হয় না। শুধু method-এর নাম এবং parameter লিখে তার পরে curly bracket ব্যবহার করতে হয়।
methodএকটি object-এর মাধ্যমে class-এর method call করা যায়।
class Car { constructor(brand) { this.brand = brand; } showBrand() { return "গাড়ির ব্র্যান্ড: " + this.brand; } } let car = new Car("Toyota"); console.log(car.showBrand());
Class থেকে তৈরি object-এর property সংরক্ষণ করার জন্য this keyword ব্যবহার করা হয়। this বর্তমান object-কে নির্দেশ করে।
Constructor-এর parameter-এর value সাধারণত this-এর মাধ্যমে object-এর property হিসেবে সংরক্ষণ করা হয়।
thisযেমন this.name লিখলে বর্তমান object-এর name property বোঝায়।
class Person { constructor(name, city) { this.name = name; this.city = city; } information() { return this.name + " ঢাকা শহরে থাকেন।"; } } let person = new Person("Rahim", "Dhaka"); console.log(person.name); console.log(person.information());
Class-এর constructor এবং method-এ parameter ব্যবহার করা যায়। এর মাধ্যমে object তৈরি করার সময় অথবা method call করার সময় প্রয়োজনীয় data পাঠানো যায়।
একই class ব্যবহার করে ভিন্ন ভিন্ন parameter-এর মাধ্যমে বিভিন্ন object তৈরি করা যায়। ফলে একটি class অনেক ধরনের data নিয়ে কাজ করতে পারে।
parameterConstructor-এ একাধিক parameter থাকলে new keyword দিয়ে object তৈরির সময় একই ক্রমে argument পাঠাতে হবে।
class Product { constructor(name, price) { this.name = name; this.price = price; } getPrice(quantity) { return this.price * quantity; } } let product = new Product("Keyboard", 1200); console.log(product.name); console.log(product.getPrice(3));
একটি class-এর সবচেয়ে বড় সুবিধাগুলোর একটি হল একই কাঠামো ব্যবহার করে একাধিক object তৈরি করা যায়। প্রতিটি object-এর property value আলাদা হতে পারে।
এভাবে Student, Employee, Product বা অন্য কোনো একই ধরনের entity-এর জন্য একটি class তৈরি করে অনেকগুলো object পরিচালনা করা যায়।
multiple objectsপ্রতিটি object নিজের property value ধরে রাখে, কিন্তু একই class-এর method ব্যবহার করতে পারে।
class Student { constructor(name, roll) { this.name = name; this.roll = roll; } show() { return this.name + " - Roll: " + this.roll; } } let student1 = new Student("Rahim", 101); let student2 = new Student("Karim", 102); let student3 = new Student("Hasan", 103); console.log(student1.show()); console.log(student2.show()); console.log(student3.show());
Class-এর method-এর ভিতরে return ব্যবহার করে কোনো value ফেরত পাঠানো যায়। পরে সেই returned value variable-এ রাখা অথবা সরাসরি console-এ দেখানো যায়।
Return ব্যবহার করলে method কোনো নির্দিষ্ট calculation বা result তৈরি করে caller-এর কাছে পাঠাতে পারে।
returnMethod থেকে return করার পর সেই method-এর execution শেষ হয়ে যায়।
class Calculator { add(a, b) { return a + b; } multiply(a, b) { return a * b; } } let calculator = new Calculator(); let sum = calculator.add(10, 20); let result = calculator.multiply(5, 4); console.log(sum); console.log(result);
Class-এর method সাধারণত object-এর মাধ্যমে call করা হয়। কিন্তু কোনো method যদি সরাসরি class-এর মাধ্যমে call করতে চান, তাহলে static keyword ব্যবহার করা যায়।
Static method class-এর instance-এর পরিবর্তে class-এর সাথেই যুক্ত থাকে। তাই static method call করার সময় new keyword দিয়ে object তৈরি করার প্রয়োজন হয় না।
staticStatic method সাধারণত এমন কাজের জন্য ব্যবহার করা হয় যার জন্য কোনো নির্দিষ্ট object-এর property প্রয়োজন হয় না।
class MathHelper { static square(number) { return number * number; } static double(number) { return number * 2; } } console.log(MathHelper.square(5)); console.log(MathHelper.double(10));
জাভাস্ক্রিপ্টে Class ব্যবহার করলে একই ধরনের object-এর structure এবং behaviour একটি জায়গায় সংগঠিত রাখা যায়। বড় application তৈরি করার সময় এটি code পরিচালনা করা সহজ করে।
Class-এর মাধ্যমে constructor, property এবং method একসাথে রাখা যায়। ফলে code পুনরায় ব্যবহার করা এবং ভবিষ্যতে পরিবর্তন করা তুলনামূলকভাবে সহজ হয়।
ClassObject-oriented programming-এর বিভিন্ন ধারণা যেমন inheritance এবং encapsulation-এর সাথে কাজ করার জন্য class গুরুত্বপূর্ণ।
class User { constructor(name, email) { this.name = name; this.email = email; } profile() { return this.name + " - " + this.email; } } let user = new User("Anik", "anik@example.com"); console.log(user.profile());