Υπερφόρτωση μεθόδου 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("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Έξοδος :

 Επιχειρήματα: 1 Επιχειρήματα: 1 και 4

2. Αλλάζοντας τον τύπο δεδομένων των παραμέτρων

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Έξοδος :

Πήρατε ακέραια δεδομένα. Έχω αντικείμενο String.

Εδώ, και οι δύο υπερφορτωμένες μέθοδοι δέχονται ένα επιχείρημα. Ωστόσο, κάποιος αποδέχεται το επιχείρημα του τύπου intενώ άλλος αποδέχεται το Stringαντικείμενο.

Ας δούμε ένα πραγματικό παράδειγμα:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) 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

Σημαντικά σημεία

  • Δύο ή περισσότερες μέθοδοι μπορούν να έχουν το ίδιο όνομα μέσα στην ίδια τάξη, εάν αποδέχονται διαφορετικά επιχειρήματα. Αυτή η δυνατότητα είναι γνωστή ως μέθοδος υπερφόρτωσης.
  • Η μέθοδος υπερφόρτωσης επιτυγχάνεται είτε με:
    • αλλαγή του αριθμού των ορισμάτων.
    • ή αλλαγή του τύπου δεδομένων των ορισμάτων.
  • Δεν είναι υπερφόρτωση μεθόδου αν αλλάξουμε μόνο τον τύπο επιστροφής μεθόδων. Πρέπει να υπάρχουν διαφορές στον αριθμό των παραμέτρων.

ενδιαφέροντα άρθρα...