কম্পিউটার

জাভাতে ভারার্গসে পদ্ধতি ওভারলোডিং এবং অস্পষ্টতা


জাভাতে পরিবর্তনশীল আর্গুমেন্ট ব্যবহার করার সময় অস্পষ্টতা রয়েছে। এটি ঘটে কারণ দুটি পদ্ধতি নিশ্চিতভাবে যথেষ্ট বৈধ হতে পারে যা ডেটা মান দ্বারা কল করা যায়। এই কারণে, কোন পদ্ধতিতে কল করতে হবে সে সম্পর্কে কম্পাইলারের জ্ঞান নেই।

উদাহরণ

public class Demo {
   static void my_fun(double ... my_Val){
      System.out.print("fun(double ...): " + "Number of args: " + my_Val.length );
      for(double x : my_Val)
      System.out.print(x + " ");
      System.out.println();
   }
   static void my_fun(boolean ... my_Val){
      System.out.print("fun(boolean ...) " + "The number of arguments: " + my_Val.length);
      for(boolean x : my_Val)
      System.out.print(x + " ");
      System.out.println();
   }
   public static void main(String args[]){
      my_fun(11.56, 34.78, 99.09, 56.66);
      System.out.println("Function 1 has been successfully called");
      my_fun(true, false, true, false);
      System.out.println("Function 2 has been successfully called");
      my_fun();
      System.out.println("Function 3 has been successfully called");
   }
}

আউটপুট

Demo.java:23: error: reference to my_fun is ambiguous
my_fun();
^
both method my_fun(double...) in Demo and method my_fun(boolean...) in Demo match
1 error

ডেমো নামের একটি ক্লাস 'my_fun' নামের একটি ফাংশনকে সংজ্ঞায়িত করে যা পরিবর্তনশীল সংখ্যক ফ্লোটিং পয়েন্ট ভ্যালু নেয়। মানগুলি 'ফর' লুপ ব্যবহার করে কনসোলে মুদ্রিত হয়। এই ফাংশনটি ওভারলোড করা হয় এবং প্যারামিটারগুলি হল বুলিয়ান মান যা সংখ্যায় পরিবর্তিত হয়। আউটপুট 'ফর' লুপ ব্যবহার করে কনসোলে প্রদর্শিত হয়।

প্রধান ফাংশনে, 'my_fun' কে প্রথমে ফ্লোটিং পয়েন্ট মান এবং তারপর বুলিয়ান মান সহ এবং তারপরে কোনো প্যারামিটার ছাড়াই ডাকা হয়। এর ফলে যে ব্যতিক্রমটি ঘটে তা কনসোলে প্রদর্শিত হয়।


  1. জাভাতে স্ট্যাটিক বাইন্ডিং এবং ডাইনামিক বাইন্ডিং

  2. জাভাতে মেথড ওভারলোডিং v/s মেথড ওভাররাইডিং

  3. জাভাতে ওভারলোডিং পদ্ধতি এবং টাইপ প্রচার

  4. জাভাতে ওভারলোডিং পদ্ধতি