overloading در جاوا

overloading در جاوا (method overloading)

در این جلسه به آموزش overloading در جاوا میپردازیم. پیش نیاز این جلسه شامل موارد زیر است:

  1. آشنایی با متد
  2. آشنایی با ساخت شی (شی گرایی)

Overloading در جاوا

اگر چندین متد را با یک نام بنویسیم آنرا overloading میگویند(در یک کلاس!!). معمولا وقتی یک قسمت از کد کار خاصی را انجام میدهد میتوان با نامگذای یکسان متدها، خوانایی کد را بالا برد.

فرض کنید میخواهید کدی بنویسید که عملیات جمع را انجام دهد. متدی مینویسیم به صورت (int,int).حال برای اینکه سه عدد را با هم جمع کنیم متدی باید بنویسیم به صورت (int,int,int). این دو متد یک کار را انجام میدهند و اگر یک نام داشته باشند کد بسیار خواناتر است و به راحتی میتوان کد را متوجه شد.انواع overloading در جاوا به صورت زیر است:

  1. تفاوت متدها در نوع ورودی(مثلا int با float)
  2. تفاوت متدها در تعداد ورودی(مثلا int با int,int)
  3. تفاوت متدها در دنباله ورودیها(مثلا int,int,int با int,float,int)

به عنوان یک نکته به یاد داشته باشید که overloading در جاوا بر اساس خروجی متد مشخص نمیشود.

تفاوت متدها در نوع ورودی

با یک مثال ساده این نوع overloading را نشان میدهیم. ما میخواهیم متدی برای عملیات جمع دو عدد بنویسیم. نام متد را sum میگذاریم. ابتدا متد را با دو ورودی int مینویسیم سپس یک متد دیگر با همین نام و تعداد ورودی ولی از نوع double مینویسیم.کد آن به صورت زیر است:

public class MethodOverLoading {

public void sum(int a,int b){

          System.out.println(a+b);

     }

     public void sum(double a , double b){

          System.out.println(a+b);

     }

}

تفاوت متدها در تعداد ورودی

با همان مثال عملیات جمع، این نوع overloading را توضیح میدهیم. ابتدا یک متد به صورت (int,int) مینویسیم سپس متد دوم را برای عملیات جمع سه عدد مینویسیم پس به صورت (int,int,int) است.کد overloading در جاوا به صورت زیر است:

public class MethodOverLoading {

public void sum(int a,int b){

          System.out.println(a+b);

     }

     public void sum(int a,int b, int c){

          System.out.println(a+b+c);

     }

}

تفاوت متدها در دنباله ورودی

قبل از توضیح مثال این نوع overloading باید ذکر کنیم بعضی منابع این نوع overloading را عضو دسته اول(تفاوت در نوع ورودی) میگیرند. ما برای اینکه تمام حالات را پوشش دهیم این قسمت را نیز آوردیم. برای مثال این قسمت دوباره از عملیات جمع استفاده میکنیم فقط ورودی ها به صورت (int,double) و (double,int) است. کد overloading در جاوا به صورت زیر است:

public class MethodOverLoading {

public void sum(int a,double b){

          System.out.println(a+b);

     }

     public void sum(double a,int b){

          System.out.println(a+b);

     }

}

تست overloading در جاوا

برای تست کدهای بالا، کد main زیر را بزنید(کدهای بالا در کلاسی به نام MethodOverloading نوشته شده است).

     public static void main(String[] args) {

          MethodOverLoading m = new MethodOverLoading();

          int a = 2;

          int b = 3;

          int c = 4;

          double aa = 2.0;

          double bb = 3.0;

          double cc = 4.0;

          m.sum(a, b);

          m.sum(aa, bb);

          m.sum(a, b, c);

     }

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *