কম্পিউটার টিউটোরিয়াল

জাভাতে ডিফল্ট মেথডের ব্যবহারিতা

জাভাতে একটি ইন্টারফেস ক্লাসের মতো কিন্তু, এতে শুধু অ্যাবস্ট্র্যাক্ট মেথড এবং ফাইনাল ও স্ট্যাটিক ফিল্ড থাকে।

  • এটি মেথড প্রোটোটাইপের একটি স্পেসিফিকেশন (specification)। যখনই আপনি প্রোগ্রামারকে গাইড করতে চান বা, একটি কন্ট্রাক্ট স্পেসিফাই করতে চান যে কীভাবে একটি টাইপের মেথড ও ফিল্ড হওয়া উচিত, তখন আপনি একটি ইন্টারফেস ডিফাইন করতে পারেন।
  • যদি আপনার ক্লাস একটি নির্দিষ্ট স্পেসিফিকেশন ফলো করতে হয়, তবে আপনাকে সেই ইন্টারফেস ইমপ্লিমেন্ট করতে হবে এবং সেই ইন্টারফেসের সব অ্যাবস্ট্র্যাক্ট মেথডের বডি দিতে হবে।
  • যদি আপনি একটি ইন্টারফেসের (যেটি আপনি ইমপ্লিমেন্ট করেছেন) সব অ্যাবস্ট্র্যাক্ট মেথডের ইমপ্লিমেন্টেশন দেন না, তবে কম্পাইল টাইম এরর জেনারেট হবে।

ইন্টারফেসে নতুন মেথড যোগ হলে কী হয়?

ধরুন আমরা একটি নির্দিষ্ট ইন্টারফেস ব্যবহার করছি এবং সেই ইন্টারফেসের সব অ্যাবস্ট্র্যাক্ট মেথড ইমপ্লিমেন্ট করেছি এবং পরে নতুন মেথড যোগ হয়। তখন, এই ইন্টারফেস ব্যবহার করে সমস্ত ক্লাস কাজ করবে না যদি না আপনি নতুন যোগ হওয়া মেথডগুলো প্রতিটি ক্লাসে ইমপ্লিমেন্ট করেন।

এই সমস্যা সমাধান করতে Java 8-এ ডিফল্ট মেথড ইন্ট্রোডিউস করা হয়েছে।

ডিফল্ট মেথড (Default Methods)

একটি ডিফল্ট মেথডকে ডিফেন্ডার মেথড (defender method) বা ভার্চুয়াল এক্সটেনশন মেথড (virtual extension method) ও বলা হয়। আপনি default কীওয়ার্ড ব্যবহার করে একটি ডিফল্ট মেথড ডিফাইন করতে পারেন:

default void display() { 
    System.out.println("This is a default method"); 
}

একবার ইন্টারফেসে একটি নির্দিষ্ট মেথডের ডিফল্ট ইমপ্লিমেন্টেশন লিখলে, সেই ইন্টারফেস ইতিমধ্যে ব্যবহার করছে (ইমপ্লিমেন্ট করছে) ক্লাসগুলোতে এটি ইমপ্লিমেন্ট করার প্রয়োজন নেই।

নিচের জাভা উদাহরণটি জাভাতে ডিফল্ট মেথডের ব্যবহার দর্শায়।

উদাহরণ

interface sampleInterface { 
    public void demo(); 
    default void display() { 
        System.out.println("This is a default method"); 
    } 
} 

public class DefaultMethodExample implements sampleInterface { 
    public void demo() { 
        System.out.println("This is the implementation of the demo method"); 
    } 
    
    public static void main(String args[]) { 
        DefaultMethodExample obj = new DefaultMethodExample(); 
        obj.demo(); 
        obj.display(); 
    } 
}

আউটপুট

This is the implementation of the demo method 
This is a default method
  1. জাভাতে String intern() মেথডের ভূমিকা

  2. জাভাতে pack() মেথড কখন ব্যবহার করবেন

  3. জাভাতে setBounds() মেথডের ব্যবহার কী?

  4. জাভা ৯-এ ইন্টারফেসে প্রাইভেট মেথড ব্যবহার করা যায় কি?