অ্যাবস্ট্রাকশন এবং ইন্টারফেস

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) - জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

396

অ্যাবস্ট্রাকশন (Abstraction) এবং ইন্টারফেস (Interface) হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের (OOP) দুটি গুরুত্বপূর্ণ ধারণা। অ্যাবস্ট্রাকশন ব্যবহার করে একটি প্রোগ্রামের জটিল অংশগুলোকে লুকানো হয় এবং প্রয়োজনীয় অংশগুলো প্রদর্শন করা হয়। ইন্টারফেসের মাধ্যমে বিভিন্ন ক্লাসে সাধারণ ফাংশনালিটি সংজ্ঞায়িত করা যায় যা পরবর্তীতে বিভিন্ন ক্লাসে বাস্তবায়িত হয়।


অ্যাবস্ট্রাকশন (Abstraction)

অ্যাবস্ট্রাকশন হলো প্রোগ্রামের জটিল অংশগুলো লুকিয়ে রেখে প্রয়োজনীয় অংশগুলো দেখানোর কৌশল। এটি প্রোগ্রামের এমন অংশের ওপর ফোকাস করে যা প্রোগ্রাম ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ, আর অন্যান্য জটিল বিষয়গুলো আড়ালে রাখা হয়।

অ্যাবস্ট্রাকশন কিভাবে কাজ করে?

Java-তে অ্যাবস্ট্রাকশন করতে abstract ক্লাস এবং ইন্টারফেস ব্যবহার করা হয়। অ্যাবস্ট্রাকশন দ্বারা প্রোগ্রামের জটিল অংশ লুকিয়ে রেখে শুধুমাত্র প্রয়োজনীয় অংশগুলো প্রকাশ করা যায়।

Abstract ক্লাস

abstract ক্লাস হলো এমন একটি ক্লাস যার মধ্যে abstract এবং non-abstract উভয় ধরনের মেথড থাকতে পারে। abstract মেথড এমন একটি মেথড যেটির শুধু ডিক্লারেশন থাকে, কিন্তু কোনো ইমপ্লিমেন্টেশন থাকে না। এই মেথডের ইমপ্লিমেন্টেশন পরে সাবক্লাসে প্রদান করা হয়।

উদাহরণ:

// Abstract ক্লাস
abstract class Vehicle {
    // Abstract মেথড
    public abstract void start();

    // Non-abstract মেথড
    public void stop() {
        System.out.println("Vehicle stopped.");
    }
}

// চাইল্ড ক্লাস যা abstract মেথড ইমপ্লিমেন্ট করে
class Car extends Vehicle {
    @Override
    public void start() {
        System.out.println("Car started.");
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.start(); // আউটপুট: Car started.
        myCar.stop();  // আউটপুট: Vehicle stopped.
    }
}

ব্যাখ্যা:

  • Vehicle হলো একটি abstract ক্লাস, যার মধ্যে একটি abstract মেথড start() এবং একটি সাধারণ মেথড stop() রয়েছে।
  • Car ক্লাস Vehicle কে ইনহেরিট করে এবং start() মেথড ইমপ্লিমেন্ট করে।

ইন্টারফেস (Interface)

ইন্টারফেস হলো এমন একটি রেফারেন্স টাইপ যা শুধু মেথডের সিগনেচার (declaration) সংজ্ঞায়িত করে। ইন্টারফেসের মেথডগুলোর কোনো ইমপ্লিমেন্টেশন থাকে না। যেকোনো ক্লাস ইন্টারফেসকে ইমপ্লিমেন্ট করে তার মেথডগুলোর ইমপ্লিমেন্টেশন প্রদান করে।

ইন্টারফেস কিভাবে কাজ করে?

Java-তে interface কীওয়ার্ড ব্যবহার করে ইন্টারফেস তৈরি করা হয়। ইন্টারফেস একধরনের সম্পূর্ণ অ্যাবস্ট্রাকশন প্রদান করে, কারণ এতে শুধুমাত্র মেথডের সিগনেচার থাকে এবং কোনো ইমপ্লিমেন্টেশন থাকে না।

উদাহরণ:

// ইন্টারফেস
interface Vehicle {
    void start();
    void stop();
}

// Car ক্লাস যা Vehicle ইন্টারফেসকে ইমপ্লিমেন্ট করে
class Car implements Vehicle {
    @Override
    public void start() {
        System.out.println("Car started.");
    }

    @Override
    public void stop() {
        System.out.println("Car stopped.");
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car();
        myCar.start(); // আউটপুট: Car started.
        myCar.stop();  // আউটপুট: Car stopped.
    }
}

ব্যাখ্যা:

  • Vehicle ইন্টারফেসে start() এবং stop() মেথড ডিক্লারেশন রয়েছে।
  • Car ক্লাস Vehicle ইন্টারফেসকে ইমপ্লিমেন্ট করে এবং start() এবং stop() মেথডের ইমপ্লিমেন্টেশন প্রদান করে।

অ্যাবস্ট্রাকশন বনাম ইন্টারফেসের পার্থক্য

বৈশিষ্ট্যAbstract ক্লাসইন্টারফেস
মেথড টাইপAbstract এবং non-abstract মেথড উভয়ই থাকতে পারেশুধুমাত্র abstract মেথড থাকে (Java 8 পর্যন্ত)
ফিল্ড টাইপভেরিয়েবল থাকতে পারেশুধুমাত্র public static final কনস্ট্যান্ট থাকে
ইনহেরিটেন্সএকাধিক abstract ক্লাস ইনহেরিট করা যায় নাএকাধিক ইন্টারফেস ইমপ্লিমেন্ট করা যায়
ব্যবহারসাধারণ এবং নির্দিষ্ট বৈশিষ্ট্য সংজ্ঞায়িত করতেসম্পূর্ণ অ্যাবস্ট্রাকশন এবং বহুল ব্যবহারযোগ্যতা
কীওয়ার্ডabstract এবং extendsinterface এবং implements

অ্যাবস্ট্রাকশন এবং ইন্টারফেস কেন ব্যবহার করা হয়?

  1. কোড পুনরায় ব্যবহারযোগ্যতা বৃদ্ধি: অ্যাবস্ট্রাকশন এবং ইন্টারফেসের মাধ্যমে কোডকে মডুলার করে রাখা যায়।
  2. কোডের স্থিতিশীলতা: অ্যাবস্ট্রাকশন এবং ইন্টারফেসের ব্যবহার কোডের জটিলতা কমায় এবং বিভিন্ন অংশকে স্বাধীন করে।
  3. প্রবাহ নিয়ন্ত্রণ ও নিরাপত্তা বৃদ্ধি: প্রোগ্রামের প্রয়োজনীয় অংশ ব্যবহারকারীর সামনে দেখানো হয় এবং অপ্রয়োজনীয় অংশগুলো আড়ালে থাকে।
  4. বহু-প্রকার ব্যবহার: ইন্টারফেসের মাধ্যমে একই কাজ একাধিক ক্লাসে আলাদাভাবে ইমপ্লিমেন্ট করা যায়।

সংক্ষেপে

  • অ্যাবস্ট্রাকশন: প্রোগ্রামের জটিলতা লুকিয়ে রেখে প্রয়োজনীয় অংশ প্রকাশ করা।
    • Abstract ক্লাস: একসাথে abstract ও non-abstract মেথড রাখতে পারে।
  • ইন্টারফেস: সম্পূর্ণ অ্যাবস্ট্রাকশন প্রদান করে এবং শুধুমাত্র মেথডের সিগনেচার ধারণ করে।

অ্যাবস্ট্রাকশন এবং ইন্টারফেস OOP প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা কোডের পুনরায় ব্যবহারযোগ্যতা, মডুলারিটি এবং স্থিতিশীলতা বাড়াতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...