مزايا وعيوب طريقة التحميل الزائد في جافا

طرق التحميل الزائد هي طرق في نفس الفئة تشترك في نفس الاسم ولكنها تقبل أنواعًا مختلفة من المتغيرات كوسائط. على سبيل المثال ، قد يحتوي الفصل على طريقتين مختلفتين "add": واحدة تقبل قيمتين مزدوجتين ، "add (double a، double b)" ، والأخرى تقبل اثنين القيم الصحيحة ، "إضافة (int a ، int b)." يقرر الكمبيوتر تلقائيًا الطريقة التي يتم الاتصال بها في وقت التشغيل بناءً على أنواع المتغيرات التي يتم تمريرها إلى طريقة.

المرونة

تمنح الطرق ذات التحميل الزائد المبرمجين المرونة لاستدعاء طريقة مماثلة لأنواع مختلفة من البيانات. إذا كنت تعمل على برنامج للرياضيات ، على سبيل المثال ، يمكنك استخدام التحميل الزائد لإنشاء عدة فصول "مضاعفة" ، كل منها يضاعف عددًا مختلفًا من نوع الوسيطة: الأبسط "اضرب (int a، int b)" يضاعف اثنين أعداد صحيحة. الطريقة الأكثر تعقيدًا "اضرب (ضعف a ، int b ، int c)" تضرب ضعفًا واحدًا في عددين صحيحين - يمكنك حينئذٍ قم باستدعاء "الضرب" على أي مجموعة من المتغيرات التي قمت بإنشاء طريقة محملة بشكل زائد للحصول على النتيجة الصحيحة.

فيديو اليوم

بناة

يتم استخدام التحميل الزائد أيضًا على المُنشئين لإنشاء كائنات جديدة نظرًا لكميات مختلفة من البيانات. على سبيل المثال ، يمكنك استخدام التحميل الزائد لإنشاء ثلاثة مُنشئين مختلفين لكائن "منزل" برقم المنزل واسم الشارع ومتغيرات اللون. أبسط مُنشئ "House ()" لا يأخذ أي وسيطات وينشئ منزلًا بمتغيرات افتراضية أو فارغة. ينشئ المُنشئ الأكثر تعقيدًا "House (int houseNumber، String streetName)" منزلًا برقم المنزل المحدد واسم الشارع ، ولكن بلون افتراضي أو فارغ. ينشئ المُنشئ الأكثر تعقيدًا ، "House (int houseNumber ، String streetName ، String color)" منزلًا به جميع المعلومات المحددة ، دون ترك أي شيء افتراضيًا. يمكنك بعد ذلك إنشاء كائن منزل بناءً على المعلومات المتاحة حاليًا ، مع ترك المعلومات غير المتاحة فارغة أو افتراضيًا.

مراجع غامضة

يجب أن تستخدم الطرق ذات التحميل الزائد أعدادًا أو أنواعًا مختلفة من الوسيطات لتجنب الغموض. إذا قمت بإنشاء طريقتين في نفس الفئة لهما نفس الاسم وقبلت عددين صحيحين كوسيطات ، فإن لن يتمكن برنامج التحويل البرمجي Java من التمييز بين الاثنين ، حتى لو كانت متغيرات الإدخال لها أسماء مختلفة. على سبيل المثال ، لا يمكن أن توجد الطريقة "add (int a، int b)" في نفس الفئة مثل الطريقة "add (int c، int d)."

أنواع الإرجاع

يجب تحديد نوع الإرجاع لكل طريقة محملة بشكل زائد. يمكن أن يكون للطرق أنواع إرجاع مختلفة - على سبيل المثال ، "add (int a، int b)" قد ترجع عددًا صحيحًا ، بينما "add (double a، double b)" ترجع ضعفًا. ومع ذلك ، لا تستطيع Java التمييز بين طريقتين مختلفتين بناءً على نوع الإرجاع. لذلك ، "int ضرب (ضعف أ ، مزدوج ب)" لا يمكن أن توجد في نفس الفئة مثل "مضاعفة مضاعفة (ضعف أ ، مزدوج ب)."