What is OOP?
Object-Oriented Programming (OOP) হলো এক ধরনের প্রোগ্রামিং প্যারাডাইম (ধারা) যেখানে সফটওয়্যার তৈরি করা হয় অবজেক্ট (Object) ভিত্তিকভাবে। একটি অবজেক্ট হচ্ছে বাস্তব বিশ্বের কোনো জিনিসের (entity) ডিজিটাল প্রতিরূপ — যেমন মানুষ, গাড়ি, ব্যাঙ্ক অ্যাকাউন্ট, অর্ডার ইত্যাদি।
অবজেক্টের দুটি মূল উপাদান থাকে
- Field (Property / Attribute): ডাটা বা অবস্থা ধরে রাখে
- Method (Behavior / Function): অবজেক্ট কীভাবে আচরণ করবে তা নির্ধারণ করে
সহজভাবে বলা যায়, অবজেক্ট হলো এমন একটি “বস্তুর নকশা” যা নিজস্ব ডাটা ও সেই ডাটার উপর কাজ করার পদ্ধতি ধারণ করে।
Java তে OOP
Java ভাষাটি পুরোপুরি Object-Oriented নীতির উপর ভিত্তি করে তৈরি। Java-তে প্রায় সবকিছুই একটি Class বা Object। একটি class হচ্ছে অবজেক্ট তৈরির ব্লুপ্রিন্ট — এবং অবজেক্ট হচ্ছে সেই ক্লাসের instance।
OOP-এর মূল চারটি নীতি (4 Pillars of OOP)
1. এনক্যাপসুলেশন (Encapsulation)
Encapsulation মানে হলো ডাটা এবং সেই ডাটার উপর কাজ করা মেথডগুলোকে একত্রে রাখা।
এটি একটি প্রটেকশন দেয় যাতে বাইরের কোড সরাসরি অবজেক্টের ডাটা পরিবর্তন করতে না পারে।
উদাহরণ:
public class Account {
private double balance;
public void deposit(double amount) {
balance += amount;
}
public double getBalance() {
return balance;
}
}
এখানে balance প্রাইভেট, তাই ক্লাসের বাইরে থেকে একে সরাসরি পরিবর্তন করা যাবে না। তবে deposit() ও getBalance() মেথডের মাধ্যমে নিয়ন্ত্রিতভাবে অ্যাক্সেস দেওয়া হয়েছে। এটাই Encapsulation।
2. অ্যাবস্ট্রাকশন (Abstraction)
Abstraction মানে হলো জটিল বিষয়গুলো লুকিয়ে শুধু প্রয়োজনীয় অংশটি ব্যবহারকারীর সামনে উপস্থাপন করা।
উদাহরণ:
abstract class Payment {
abstract void pay(double amount);
}
class CreditCardPayment extends Payment {
void pay(double amount) {
System.out.println("Paid " + amount + " via Credit Card");
}
}
এখানে Payment ক্লাসে শুধু প্রয়োজনীয় মেথডের ঘোষণা আছে, বাস্তবায়ন নয়। ব্যবহারকারী জানে না ভিতরে কীভাবে কাজ হচ্ছে — সেটিই Abstraction।
3. ইনহেরিটেন্স (Inheritance)
Inheritance মানে হলো একটি ক্লাসের বৈশিষ্ট্য অন্য একটি ক্লাসে উত্তরাধিকারসূত্রে পাওয়া। এর মাধ্যমে কোড পুনঃব্যবহারযোগ্য হয় এবং লজিক সহজভাবে ভাগ করা যায়।
উদাহরণ:
class Animal {
void eat() {
System.out.println("Eating...");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Barking...");
}
}
এখানে Dog ক্লাস Animal এর বৈশিষ্ট্য পেয়েছে — অর্থাৎ eat() মেথড Dog-এর মধ্যেও কাজ করবে।
4. পলিমরফিজম (Polymorphism)
Polymorphism মানে “একাধিক রূপ” — একই মেথড নাম বিভিন্নভাবে কাজ করতে পারে, অবজেক্টের টাইপ অনুযায়ী।
উদাহরণ:
class Shape {
void draw() {
System.out.println("Drawing a shape");
}
}
class Circle extends Shape {
void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("Drawing a rectangle");
}
}
এখন যদি লিখো:
Shape s1 = new Circle();
Shape s2 = new Rectangle();
s1.draw(); // Drawing a circle
s2.draw(); // Drawing a rectangle
এখানে একই draw() মেথড ভিন্ন ভিন্ন রূপে কাজ করছে — এটাই Polymorphism।
সারাংশ
| নীতি | কাজ |
|---|---|
| Encapsulation | ডাটা ও বিহেভিয়ার একত্রে রাখা এবং নিরাপত্তা নিশ্চিত করা |
| Abstraction | জটিলতা লুকানো এবং প্রয়োজনীয় অংশ প্রকাশ করা |
| Inheritance | কোড পুনঃব্যবহার ও শ্রেণিবিন্যাস তৈরি করা |
| Polymorphism | একই ইন্টারফেসে একাধিক রূপে কাজ করার ক্ষমতা |
কেন OOP গুরুত্বপূর্ণ?
- কোড পুনঃব্যবহারযোগ্য হয়
- কোড সহজে রক্ষণাবেক্ষণ করা যায়
- বড় প্রজেক্টকে ছোট ছোট অংশে ভাগ করা যায়
- বাস্তব জীবনের সমস্যাকে সরাসরি মডেল করা সম্ভব
Object-Oriented Programming (OOP) হলো এক ধরণের প্রোগ্রামিং পদ্ধতি যেখানে সফটওয়্যার তৈরী করা হয় অবজেক্ট দিয়।একটা অবজেক্ট এর মূল দুইটা জিনিস থাকে ফিল্ড এবং মেথড। অবজেক্ট ফিল্ড এর মাধ্যমে ডাটা ধরে রাখে এবং মেথড এর মাধ্যমে তার বিহেভিয়ার ধরে রাখে।
Java তে OOP বাস্তবায়ন করার জন্য মূল চারটা নীতি আছে
- এনক্যাপসুলেশন - Encapsulation
- অ্যাবস্ট্রাকশন- Abstraction
- ইনহেরিটেন্স - Inheritance
- পলিমরফিজম -Polymorphism