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