Sobes.tech
Junior

Τι είναι οι ανώνυμες κλάσεις και πού εφαρμόζονται;

sobes.tech AI

Απάντηση από AI

Μια ανώνυμη κλάση είναι μια τοπική εσωτερική κλάση χωρίς όνομα.

  • Εφαρμογές:

    • Κατά τη δημιουργία ακροατών συμβάντων σε εφαρμογές GUI (π.χ., για κουμπιά).
    • Για την υλοποίηση διεπαφών ή την επέκταση αφηρημένων κλάσεων "στο σημείο", όταν χρειάζεται μόνο ένα αντίγραφο και η χρήση του είναι τοπική.
    • Στον προγραμματισμό πολλαπλών νημάτων για τη δημιουργία αντιγράφων Runnable ή Callable.
  • Πλεονεκτήματα:

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

    • Μπορεί να κάνουν τον κώδικα λιγότερο ευανάγνωστο για πολύπλοκες υλοποιήσεις.
    • Δεν μπορούν να επαναχρησιμοποιηθούν.
    • Η πρόσβαση στα πεδία της εξωτερικής κλάσης γίνεται μόνο μέσω μεταβλητών final ή αποτελεσματικά τελικών σε παλαιότερες εκδόσεις Java.
// Παράδειγμα χρήσης ανώνυμης κλάσης για Runnable
Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Εκτέλεση σε ανώνυθο νήμα.");
    }
};

new Thread(myRunnable).start();
// Παράδειγμα χρήσης ανώνυμης κλάσης για ακροατή συμβάντων (υποθετικό)
// Μερικά UI frameworks χρησιμοποιούν αυτήν την προσέγγιση.
//button.setOnAction(new EventHandler<ActionEvent>() {
//    @Override
//    public void handle(ActionEvent event) {
//        System.out.println("Το κουμπί πατήθηκε!");
//    }
//});