Javaمثال حول تعريف دوال لها نفس الإسم و تختلف في نوع الباراميترات في جافا'
في المثال التالي قمنا بتعريف كلاس إسمه MyMethods
يحتوي على ثلاث دوال إسمهم sum()
و نوعهم public void
.
الدالة الأولى مهمتها جمع أي عددين نوعهما int
ثم طباعة قيمتهم.
الدالة الثانية مهمتها جمع أي عددين نوعهما float
ثم طباعة قيمتهم.
الدالة الثالثة مهمتها جمع أي عددين نوعهما double
ثم طباعة قيمتهم.
بعد إنشاء هذا الكلاس, قمنا بإنشاء الكلاس Main
و إستدعاء الدوال الثلاثة فيه.
مثال
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)); } }
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()
المناسبة لنوع الباراميترات الذي كنا نمرره لها.