English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليميات Java الأساسية

تحكم في العملية في Java

مجموعات Java Array

Java موجهة الأوبئة (I)

Java موجهة الأوبئة (II)

Java موجهة الأوبئة (III)

معالجة الاستثناءات Java

قوائم Java List

Java Queue (الطابور)

مجموعات Java Map

مجموعات Java Set

إدخال/إخراج Java (I/O)

قراء/كتابة Java

موضوعات أخرى في Java

تحميل الطريقة في Java

في هذا المقال، ستعرف عن تحميل الطريقة وكيفية تنفيذها في Java باستخدام أمثلة.

في Java، إذا كانت هناك أكثر منطريقةإذا كانت المعلمات مختلفة (عدد مختلف من المعلمات، أو نوع مختلف للمعلمات، أو كلاهما)، يمكن أن يكون لها نفس الاسم. تسمى هذه الطرق طريقة تحميل، و يُدعى هذا الخاصية تحميل الطريقة. على سبيل المثال:

void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }

في هذا السياق، يتم تعطيل طريقة func(). هذه الطرق لها نفس الاسم، ولكن تختلف المعلمات التي تأخذها.

لاحظ أن نوع العائد لهذه الطرق مختلف. يمكن أن يكون لديها نوع عائد مختلف، أو لا، ولكن يجب أن تكون المعلمات المقدمة مختلفة.

لماذا يتم تعطيل الطريقة؟

افترض أنك يجب تنفيذ عملية الجمع لعدد معين، ولكن يمكن أن يكون هناك أي عدد من المعلمات (للغرض من البساطة، يمكن القول عن 2 أو 3 معلمات).

لإكمال المهمة، يمكن إنشاء طريقتين من نوع sum2num(int, int) و sum3num(int, int, int) للعناصر الثنائية و الثلاثية. ولكن قد يشعر باقي المبرمجين وأنت في المستقبل بالحيرة، لأن سلوك هاتين الطريقتين متشابه، ولكن الأسماء مختلفة.

أفضل طريقة لإنجاز هذه المهمة هي تحميل الطريقة. وبناءً على المعامل المرسل، يتم استدعاء أحد الطرق المحمّلة. هذا يساعد في زيادة قراءة البرنامج.

كيفية تنفيذ تحميل الطريقة في Java؟

هذه هي الطرق المختلفة لتنفيذ تحميل الطريقة:

1. من خلال تغيير عدد المعاملات لتحميل

class MethodOverloading {
    private static void display(int a){
        System.out.println("المعامل: " + a);
    }
    private static void display(int a, int b){
        System.out.println("المعامل: " + a + " و " + b);
    }
    public static void main(String[] args) {
        display(1);
        display(1, 4);
    }
}

الإخراج:

المعامل: 1
المعامل: 1 و 4

2. من خلال تغيير نوع البيانات للمعامل

class MethodOverloading {
    //يأخذ هذا الطريقة int
    private static void display(int a){
        System.out.println("لقد حصلنا على بيانات عددية.");
    }
    //يأخذ هذا الطريقة Object String
    private static void display(String a){
        System.out.println("لقد حصلنا على Object String.");
    }
    public static void main(String[] args) {
        display(1);
        display("Hello");
    }
}

الإخراج:

لقد حصلنا على بيانات عددية
لقد حصلنا على Object String.

في هذا السياق، تتعامل كلاً من الطرق المعدلة مسبقًا مع معامل واحد. ولكن، واحدة منهم تأخذ معامل من نوع int، بينما تأخذ الأخرى معامل من نوع Object String.

دعونا نرى مثالاً حقيقياً:

class HelperService {
    
        return String.format(
    }
    
        return String.format(
    }
    
        return String.format(
    }
    public static void main(String[] args) {
        HelperService hs = new HelperService();
        System.out.println(hs.formatNumber(500));
        System.out.println(hs.formatNumber(89.9934));
        System.out.println(hs.formatNumber("550"));
    }
}

عند تشغيل هذا البرنامج، تكون النتيجة كما يلي:

500
89.993
550.00

ملاحظةفي Java، يمكنك أيضًا تحميل إعادة تعريف بناء الجسم بشكل مشابه للطريقة.

اقتراحات مرتبطة: Java Overloading constructors

ملاحظات

  • إذا كانت الطريقة تأخذ معلمات مختلفة، فإنها يمكن أن تكون لها نفس الاسم في نفس الفئة. هذا الميزة تسمى Overloading methods.

  • يمكن تحقيق تحميل إعادة تعريف الطريقة عبر أي من الطرق التالية:

    • تغيير عدد المعلمات.

    • أو تغيير نوع البيانات للمعلمات.

  • لا يمكن تحقيق تحميل إعادة تعريف الطريقة فقط عن طريق تغيير نوع العودة للطريقة.