Java مثال حول تعريف دوال لها نفس الإسم و تختلف في نوع الباراميترات في جافا'

في المثال التالي قمنا بتعريف كلاس إسمه MyMethods يحتوي على ثلاث دوال إسمهم sum() و نوعهم public void.
الدالة الأولى مهمتها جمع أي عددين نوعهما int ثم طباعة قيمتهم.
الدالة الثانية مهمتها جمع أي عددين نوعهما float ثم طباعة قيمتهم.
الدالة الثالثة مهمتها جمع أي عددين نوعهما double ثم طباعة قيمتهم.

بعد إنشاء هذا الكلاس, قمنا بإنشاء الكلاس Main و إستدعاء الدوال الثلاثة فيه.


مثال

MyMethods.java
public class MyMethods {
 
    public void sum(int a, int b) {
        System.out.println("First method is called ====> "+a+" + "+b+" = "+(a+b));
    }
 
    public void sum(float a, float b) {
        System.out.println("Second method is called ===> "+a+" + "+b+" = "+(a+b));
    }
 
    public void sum(double a, double b) {
        System.out.println("Third method is called ====> "+a+" + "+b+" = "+(a+b));
    }
 
}
		

Main.java
public class Main {
 
    public static void main(String[] args) {
 
        MyMethods m = new MyMethods();     // لإستدعاء الدوال منه MyMethods هنا قمنا بإنشاء كائن من الكلاس
 
        m.sum(1000, 4000);      // int هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(10f, 40f);        // float هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(10d, 40d);        // double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
 
        System.out.println();
 
        m.sum(2000, -100);      // int هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(5.5, -3.3);       // لأن الأرقام تحتوي على فاصلة double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(5.5d, -3.3d);     // double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(5.5f, -3.3f);     // بعد كل رقم f لأننا وضعنا float هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
 
        System.out.println();
 
        m.sum(6, 5.25);         // يقبل كلا النوعين double لأن النوع double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(6, 5.25f);        // يقبل كلا النوعين float لأن النوع float هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
        m.sum(6, 5.25d);        // يقبل كلا النوعين double لأن النوع double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم
 
    }
 
}
		

سنحصل على النتيجة التالية عند التشغيل.

First method is called ====> 1000 + 4000 = 5000
Second method is called ===> 10.0 + 40.0 = 50.0
Third method is called ====> 10.0 + 40.0 = 50.0

First method is called ====> 2000 + -100 = 1900
Third method is called ====> 5.5 + -3.3 = 2.2
Third method is called ====> 5.5 + -3.3 = 2.2
Second method is called ===> 5.5 + -3.3 = 2.2

Third method is called ====> 6.0 + 5.25 = 11.25
Second method is called ===> 6.0 + 5.25 = 11.25
Third method is called ====> 6.0 + 5.25 = 11.25 
		

كما لاحظت هنا, في كل مرة قمنا فيها باستدعاء الدالة sum() وجدنا أن المترجم قام باستدعاء الدالة sum() المناسبة لنوع الباراميترات الذي كنا نمرره لها.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة