Object-Oriented Programming (OOP) - ব্রেইন-ফ্রেন্ডলি ব্যাখ্যা!
🚀 Object-Oriented Programming (OOP) - ব্রেইন-ফ্রেন্ডলি ব্যাখ্যা!
🧠 OOP কি?
👉 Object-Oriented Programming (OOP) হলো প্রোগ্রামিংয়ের এমন একটা স্টাইল, যেখানে অবজেক্ট (Object) ব্যবহার করে কোড লেখা হয়।
একটা অবজেক্ট হলো বাস্তব জগতের কোনো কিছুর ডিজিটাল ভার্সন। যেমন:
- একটা গাড়ি (Car) 👉 অবজেক্ট
- একজন মানুষ (Person) 👉 অবজেক্ট
- একটা মোবাইল ফোন (Mobile) 👉 অবজেক্ট
প্রতিটি অবজেক্টের কিছু বৈশিষ্ট্য (Attributes) ও ব্যবহারযোগ্য কাজ (Methods/Functions) থাকে।
🎯 OOP এর 4টি মূল স্তম্ভ (Pillars)
1️⃣ Encapsulation (আবরণে রাখা)
👉 Encapsulation হলো ডাটা ও ফাংশনকে একত্রে রাখা এবং বাইরের বিশ্ব থেকে কিছু লুকিয়ে রাখা।
এটা এমন, যেমন একটা মোবাইল ফোন যেখানে ভিতরের সার্কিট আমরা দেখতে পাই না, কিন্তু বোতাম টিপলেই কাজ করে।
Example:
class BankAccount {
private var balance: Double = 0.0 // লুকানো ডাটা
fun deposit(amount: Double) { // Public Method
balance += amount
}
fun getBalance(): Double { // Public Method
return balance
}
}
val account = BankAccount()
account.deposit(500.0)
println(account.getBalance()) // Output: 500.0
🔹 balance লুকানো আছে (private), তাই বাইরে থেকে ডিরেক্টলি এক্সেস করা যাবে না!
2️⃣ Inheritance (উত্তরাধিকার)
👉 Inheritance হলো যখন একটি ক্লাস অন্য ক্লাসের বৈশিষ্ট্য ও ফাংশন গ্রহণ করে।
যেমন: একটা "Car" ক্লাস থেকে "ElectricCar" ক্লাস নতুন বৈশিষ্ট্য নিয়ে তৈরি হতে পারে।
Example:
open class Animal {
fun eat() {
println("This animal is eating.")
}
}
// Dog ক্লাস Animal থেকে Inherit করছে
class Dog : Animal() {
fun bark() {
println("Woof! Woof!")
}
}
val dog = Dog()
dog.eat() // Output: This animal is eating.
dog.bark() // Output: Woof! Woof!
🔹 Dog ক্লাস Animal ক্লাসের eat() মেথড ব্যবহার করতে পারছে। 🎉
3️⃣ Polymorphism (বহুরূপিতা)
👉 Polymorphism হলো একই জিনিসের বিভিন্ন রূপ ধারণ করার ক্ষমতা।
যেমন: একটি "Animal" ক্লাস থাকলে, "Dog" এবং "Cat" উভয়েই এটিকে আলাদাভাবে ব্যবহার করতে পারে।
Example:
open class Animal {
open fun makeSound() {
println("Some animal sound")
}
}
class Dog : Animal() {
override fun makeSound() {
println("Woof! Woof!")
}
}
class Cat : Animal() {
override fun makeSound() {
println("Meow! Meow!")
}
}
val animals: List<Animal> = listOf(Dog(), Cat())
for (animal in animals) {
animal.makeSound()
}
✅ Output:
Woof! Woof!
Meow! Meow!
🔹 একই makeSound() ফাংশন, কিন্তু বিভিন্ন ক্লাসে ভিন্ন আচরণ করছে! 🎭
4️⃣ Abstraction (জটিলতা লুকিয়ে রাখা)
👉 Abstraction হলো জটিল লজিক লুকিয়ে রাখা এবং শুধুমাত্র দরকারি জিনিস প্রকাশ করা।
যেমন: আপনি মোবাইল ব্যবহার করেন, কিন্তু ভেতরের সার্কিট বোঝেন না!
Example:
abstract class Vehicle {
abstract fun start()
}
class Car : Vehicle() {
override fun start() {
println("Car is starting with key ignition.")
}
}
class Bike : Vehicle() {
override fun start() {
println("Bike is starting with kick.")
}
}
val myCar = Car()
myCar.start() // Output: Car is starting with key ignition.
val myBike = Bike()
myBike.start() // Output: Bike is starting with kick.
🔹 Abstract ক্লাস Vehicle জানায় যে start() ফাংশন থাকবে, কিন্তু কীভাবে কাজ করবে, সেটা নির্দিষ্ট করে না। 🚗💨
🎯 OOP কেন ব্যবহার করবো?
✅ 1️⃣ কোড সহজ এবং সংগঠিত রাখা
✅ 2️⃣ কোড পুনরায় ব্যবহারযোগ্য করা (Reusable)
✅ 3️⃣ জটিলতা কমানো (Abstraction, Encapsulation)
✅ 4️⃣ বাস্তব জগতের মতো কোড লেখা সহজ হয়
🎯 সংক্ষেপে:
🔹 OOP মানে হলো অবজেক্ট-ভিত্তিক প্রোগ্রামিং।
🔹 ৪টি মূল স্তম্ভ:
✅ Encapsulation: ডাটা লুকিয়ে রাখা।
✅ Inheritance: বৈশিষ্ট্য উত্তরাধিকার পাওয়া।
✅ Polymorphism: একই ফাংশন বিভিন্নভাবে কাজ করা।
✅ Abstraction: অপ্রয়োজনীয় জটিলতা লুকিয়ে রাখা।
🚀 এখন আপনি OOP মাস্টার! 🏆
👉 এবার Kotlin OOP ব্যবহার করে প্র্যাকটিস শুরু করে দিন! 😎🔥
Comments
Post a Comment