Skip to Content

Class & Object

Class হলো একটি ব্লুপ্রিন্ট (blueprint) বা কাঠামো (structure), যার মাধ্যমে আমরা এক বা এরেচিক অবজেক্ট তৈরি করতে পারি। ক্লাসে আমরা একটি অবজেক্টের বৈশিষ্ট্য (properties) ও আচরণ (methods) নির্ধারণ করি।

🔀 TypeScript-এ Object-Oriented Programming (OOP)-এর মাধ্যমে বাস্তব জগতের বস্তু বা ধারণাগুলোকে প্রোগ্রামে মডেল করা যায় — যেমন: পশু, গাড়ি, ছাত্র, ব্যাংক এ্যাকাউন্ট ইত্যাদিরি।


📌 কখন Class ব্যবহার করব?

  • যখন একী ধরণের অনেক অবজেক্ট তৈরি করতে হবে (যেমন: অনেক পশু, ছাত্র ইত্যাদি)।
  • যখন ডেটা এবং সেই ডেটার সাথে সম্পর্কিত ফাংশন/মেথড একত্রে রাখতে চাই।
  • কোডকে সংগঠিত (organized), পুন়ব্যবহারক (reusable)সহজে বুঝতে পারার মত (readable) করতে চাইলে।
  • বড় কোনো প্রজেক্টে মডিউলার (modular)স্কেলগেবল (scalable) আর্কিটেক্চার ডিজাইন করতে চাইলে।

🛠️ উদাহরণ ও বিশ্লেষণ

✅ সাধারণ একটি ক্লাস তৈরি

class Animal { name: string; species: string; sound: string; constructor(name: string, species: string, sound: string) { this.name = name; this.species = species; this.sound = sound; } makeSound() { console.log(`${this.name} makes ${this.sound} sound`); } }

🔍 এখানে Animal একটি ক্লাস, যার মধ্যে ৩টি প্রপার্টি আছে: name, species, sound

makeSound() একটি মেথড, যা সেই প্রাণীর শব্দ কনসোলে দেখায়।


✅ অবজেক্ট তৈরি ও মেথড কল

const dog = new Animal("Dog", "Dog", "Bark"); dog.makeSound(); // Dog makes Bark sound const cat = new Animal("Cat", "Cat", "Meow"); cat.makeSound(); // Cat makes Meow sound

📌 প্রত্যেকটি প্রাণীর জন্য নতুন অবজেক্ট তৈরি করে তাদের আলাদা আচরণ প্রকাশ করা হয়েছে।


🔁 কোড সংক্ষিপ্ত করার জন্য Parameter Properties ব্যবহার

class Animal2 { constructor( public name: string, public species: string, public sound: string ) {} makeSound2() { console.log(`${this.name} makes ${this.sound} sound`); } }

🔎 এখানে আমরা ক্লাসের প্রপার্টিগুলোকে constructor-এর ভেতরেই declare ও initialize করা হয়েছে এক লাইনে। এতে কোড সংক্ষিপ্ত হয় এবং একেই কাজ বারবার লেখার প্রযোজন পড়ে না।


📌 কেন ক্লাস দরকার?

🌟 বিষয়📖 ব্যাখ্যা
Readableকোড সহজে পড়া ও বোঝা যায়।
Reusableএকই কোড পুনঃব্যবহার করা যায়, ডুপ্লিকেশন কমে।
Maintainableকোড আপডেট বা রিফ্যাক্টর করা সহজ হয়।
🔐 Encapsulationডেটা এবং ফাংশন একত্রে রেখে বাইরের থেকে হাইড করা যায়।
🧬 Inheritanceএকটি ক্লাস থেকে আরেকটি ক্লাসের বৈশিষ্ট্য গ্রহণ করা যায়।
🔁 Polymorphismএক মেথড বিভিন্নভাবে ব্যবহার করা যায় (বিভিন্ন অবজেক্ট অনুযায়ী)।

Last updated on