Java তে OOPs (Object-Oriented Programming) হল একটি প্রোগ্রামিং পদ্ধতি যা অবজেক্ট এবং ক্লাসের ধারণার উপর ভিত্তি করে। এর মূল উদ্দেশ্য হল সফটওয়্যারের পুনঃব্যবহারযোগ্যতা, মডুলারিটি, এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করা।
OOPs এর চারটি প্রধান বৈশিষ্ট্য:
- Encapsulation (এনক্যাপসুলেশন):
- বর্ণনা: এনক্যাপসুলেশন হল এক বা একাধিক ভ্যারিয়েবল (ডেটা) এবং মেথড (ফাংশন) একত্রিত করে একটি একক ইউনিট বা ক্লাসে সংরক্ষণ করার প্রক্রিয়া। এটি ডেটার উপর নিয়ন্ত্রণ রাখতে সহায়তা করে এবং বাইরের কোডের থেকে ডেটা অ্যাক্সেসের উপর সীমাবদ্ধতা আরোপ করে।
উদাহরণ:
class Car { private String model; // Private data member // Getter method public String getModel() { return model; } // Setter method public void setModel(String model) { this.model = model; } }এখানে
modelপ্রাইভেট ডেটা মেম্বার, এবংgetModel()ওsetModel()মেথড গুলি পাবলিক, যা বাইরের ক্লাস থেকে ডেটা অ্যাক্সেস এবং পরিবর্তন করতে দেয়।
- Inheritance (ঐতিহ্য):
- বর্ণনা: ইনহেরিট্যান্স হল একটি কনসেপ্ট যেখানে একটি ক্লাস অন্য একটি ক্লাসের বৈশিষ্ট্য (ফিল্ড এবং মেথড) ও আচরণ অর্জন করতে পারে। এটি কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করে এবং একই ধরনের অবজেক্টের মধ্যে সাধারণ বৈশিষ্ট্য ভাগ করে নিতে সাহায্য করে।
উদাহরণ:
class Animal { public void sound() { System.out.println("Some animal makes a sound"); } } class Dog extends Animal { // Dog class inherits from Animal class public void sound() { System.out.println("Bark"); } }এখানে
Dogক্লাসAnimalক্লাস থেকে ইনহেরিট করছে এবং তারsound()মেথডটি ওভাররাইড করেছে।
- Polymorphism (পলিমরফিজম):
- বর্ণনা: পলিমরফিজম মানে "একই নামের বিভিন্ন আচরণ"। এর মাধ্যমে একটি মেথড বা অপারেটরের বিভিন্ন রূপ থাকতে পারে। পলিমরফিজমের দুটি প্রকার:
- মেথড ওভারলোডিং: একই মেথড নাম কিন্তু ভিন্ন প্যারামিটার সহ।
- মেথড ওভাররাইডিং: একটি সুপারক্লাসের মেথডকে সাবক্লাসে পরিবর্তন করা।
উদাহরণ:
class Animal { public void sound() { System.out.println("Some animal makes a sound"); } } class Dog extends Animal { @Override public void sound() { System.out.println("Bark"); } } public class TestPolymorphism { public static void main(String[] args) { Animal myAnimal = new Dog(); // Runtime polymorphism myAnimal.sound(); // Output: Bark } }এখানে,
myAnimalঅবজেক্টটিDogক্লাসের একটি অবজেক্ট, কিন্তুsound()মেথডটি রানটাইমেDogক্লাসেরsound()মেথড কল করছে।
- বর্ণনা: পলিমরফিজম মানে "একই নামের বিভিন্ন আচরণ"। এর মাধ্যমে একটি মেথড বা অপারেটরের বিভিন্ন রূপ থাকতে পারে। পলিমরফিজমের দুটি প্রকার:
- Abstraction (এবস্ট্রাকশন):
- বর্ণনা: এবস্ট্রাকশন হল এমন একটি প্রক্রিয়া যার মাধ্যমে সিস্টেমের জটিলতা হ্রাস করা হয় এবং শুধুমাত্র গুরুত্বপূর্ণ তথ্য বা বৈশিষ্ট্য ব্যবহারকারী বা অন্যান্য সিস্টেমের জন্য প্রকাশ করা হয়। এটি
abstractক্লাস এবংinterfaceএর মাধ্যমে অর্জিত হয়। এবস্ট্রাকশনে বিস্তারিত বাস্তবায়ন (implementation) লুকানো থাকে, এবং শুধুমাত্র প্রয়োজনীয় মেথডের সিগনেচার বা কন্ট্রাক্ট প্রকাশ করা হয়। উদাহরণ:
abstract class Animal { public abstract void sound(); // Abstract method } class Dog extends Animal { @Override public void sound() { System.out.println("Bark"); } } public class TestAbstraction { public static void main(String[] args) { Animal myAnimal = new Dog(); myAnimal.sound(); // Output: Bark } }এখানে
Animalক্লাসটি একটি অ্যাবস্ট্রাক্ট ক্লাস যাsound()মেথডের কেবল সিগনেচার দিয়েছে এবংDogক্লাসে এর বাস্তবায়ন (implementation) দেয়া হয়েছে।
- বর্ণনা: এবস্ট্রাকশন হল এমন একটি প্রক্রিয়া যার মাধ্যমে সিস্টেমের জটিলতা হ্রাস করা হয় এবং শুধুমাত্র গুরুত্বপূর্ণ তথ্য বা বৈশিষ্ট্য ব্যবহারকারী বা অন্যান্য সিস্টেমের জন্য প্রকাশ করা হয়। এটি
Java এর OOPs ধারণা হল একটি শক্তিশালী প্রোগ্রামিং পদ্ধতি যা কোডের পুনঃব্যবহারযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং মডুলারিটি নিশ্চিত করে। এর চারটি প্রধান বৈশিষ্ট্য:
- Encapsulation - ডেটাকে সুরক্ষিত রাখা এবং প্রাইভেট ডেটাতে শুধুমাত্র নিয়ন্ত্রণযুক্ত অ্যাক্সেস প্রদান।
- Inheritance - কোডের পুনঃব্যবহারযোগ্যতা এবং সাধারণ বৈশিষ্ট্য ভাগ করে নেয়ার প্রক্রিয়া।
- Polymorphism - একই নামের বিভিন্ন আচরণ বা মেথডের বিভিন্ন রূপ।
- Abstraction - শুধুমাত্র গুরুত্বপূর্ণ তথ্য প্রকাশ করা এবং বাস্তবায়ন লুকানো।
এই বৈশিষ্ট্যগুলি অ্যাপ্লিকেশনের কোডের সহজ রক্ষণাবেক্ষণ এবং স্কেলেবিলিটি উন্নত করতে সহায়তা করে।
Read more