Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

4.3 Υπερφώτωση μεθόδων στην Java

Η μέθοδος Overloading στη Java επιτρέπει την ύπαρξη πολλαπλών μεθόδων με το ίδιο όνομα, αλλά με διαφορετικές παραμέτρους.

Αυτό σημαίνει ότι μπορούμε να ορίσουμε μια σειρά από μεθόδους με το ίδιο όνομα, αλλά να έχουν διαφορετικό τύπο, αριθμό ή σειρά παραμέτρων. Όταν καλείται η μέθοδος με το συγκεκριμένο όνομα, ο μεταγλωττιστής της Java θα επιλέξει την κατάλληλη μέθοδο με βάση τις παραμέτρους που δίνονται στην κλήση.

Με αυτόν τον τρόπο, μπορούμε να δημιουργήσουμε πιο ευέλικτο και ευανάγνωστο κώδικα, καθώς μπορούμε να επεκτείνουμε τη λειτουργικότητα μιας μεθόδου με διαφορετικούς τύπους παραμέτρων, αντί να χρειάζεται να δημιουργήσουμε νέο όνομα μεθόδου.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Example {
// Μέθοδος που προσθέτει δύο ακέραιους αριθμούς και επιστρέφει το αποτέλεσμα
static int plusMethod(int x, int y) {
return x + y;
}
// Μέθοδος που προσθέτει δύο δεκαδικούς αριθμούς και επιστρέφει το αποτέλεσμα
static double plusMethod(double x, double y) {
return x + y;
}
public static void main(String[] args) {
// Κλήση της plusMethod με δύο ακέραιους αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum1
int myNum1 = plusMethod(8, 5);
// Κλήση της plusMethod με δύο δεκαδικούς αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum2
double myNum2 = plusMethod(4.3, 6.26);
// Εκτύπωση του αποτελέσματος της myNum1 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "int: "
System.out.println("int: " + myNum1);
// Εκτύπωση του αποτελέσματος της myNum2 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "double: "
System.out.println("double: " + myNum2);
}
}
public class Example { // Μέθοδος που προσθέτει δύο ακέραιους αριθμούς και επιστρέφει το αποτέλεσμα static int plusMethod(int x, int y) { return x + y; } // Μέθοδος που προσθέτει δύο δεκαδικούς αριθμούς και επιστρέφει το αποτέλεσμα static double plusMethod(double x, double y) { return x + y; } public static void main(String[] args) { // Κλήση της plusMethod με δύο ακέραιους αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum1 int myNum1 = plusMethod(8, 5); // Κλήση της plusMethod με δύο δεκαδικούς αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum2 double myNum2 = plusMethod(4.3, 6.26); // Εκτύπωση του αποτελέσματος της myNum1 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "int: " System.out.println("int: " + myNum1); // Εκτύπωση του αποτελέσματος της myNum2 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "double: " System.out.println("double: " + myNum2); } }
public class Example {
  // Μέθοδος που προσθέτει δύο ακέραιους αριθμούς και επιστρέφει το αποτέλεσμα
  static int plusMethod(int x, int y) {
    return x + y;
  }

  // Μέθοδος που προσθέτει δύο δεκαδικούς αριθμούς και επιστρέφει το αποτέλεσμα
  static double plusMethod(double x, double y) {
    return x + y;
  }

  public static void main(String[] args) {
    // Κλήση της plusMethod με δύο ακέραιους αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum1
    int myNum1 = plusMethod(8, 5);
    // Κλήση της plusMethod με δύο δεκαδικούς αριθμούς και αποθήκευση του αποτελέσματος στη μεταβλητή myNum2
    double myNum2 = plusMethod(4.3, 6.26);
    // Εκτύπωση του αποτελέσματος της myNum1 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "int: "
    System.out.println("int: " + myNum1);
    // Εκτύπωση του αποτελέσματος της myNum2 μετατρέποντας το σε κείμενο και προσθέτοντας το κείμενο "double: "
    System.out.println("double: " + myNum2);
  }
}

Ο παραπάνω κώδικας περιέχει τη δήλωση μιας κλάσης με όνομα “Example”. Η κλάση περιλαμβάνει δύο στατικές μεθόδους plusMethod και την κύρια μέθοδο main.

Οι μέθοδοι plusMethod είναι υπεύθυνες για την πρόσθεση δύο αριθμών. Υπάρχει μια μέθοδος με το ίδιο όνομα αλλά διαφορετικούς τύπους παραμέτρων: μια για ακέραιους αριθμούς και μια για δεκαδικούς αριθμούς. Και οι δύο μέθοδοι επιστρέφουν το αποτέλεσμα της πρόσθεσης.

Στην κύρια μέθοδο main, πραγματοποιούνται δύο κλήσεις των plusMethod. Αποθηκεύονται τα αποτελέσματα στις μεταβλητές myNum1 (τύπου ακέραιος) και myNum2 (τύπου δεκαδικός). Έπειτα, τα αποτελέσματα εκτυπώνονται στην οθόνη χρησιμοποιώντας τη μέθοδο System.out.println. Το κείμενο “int: ” ή “double: ” συνδυάζεται με τα αποτελέσματα των μεθόδων για να εμφανιστούν στην οθόνη.

Το αποτέλεσμα στην οθόνη θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int: 13
double: 10.56
int: 13 double: 10.56
int: 13
double: 10.56

Αυτό συμβαίνει επειδή η μέθοδος plusMethod(8, 5) προσθέτει τους δύο ακέραιους αριθμούς 8 και 5, επιστρέφοντας το αποτέλεσμα 13. Στη συνέχεια, η μέθοδος plusMethod(4.3, 6.26) προσθέτει τους δύο δεκαδικούς αριθμούς 4.3 και 6.26, επιστρέφοντας το αποτέλεσμα 10.56. Τα αποτελέσματα αυτά εμφανίζονται στην οθόνη μαζί με το κατάλληλο κείμενο που τα προηγείται.

Αντί να δημιουργήσουμε δύο διαφορετικές μεθόδους που έχουν την ίδια λειτουργία, είναι προτιμότερο να χρησιμοποιήσουμε τη μέθοδο Overloading.

13 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων