Sobes.tech
Junior

Mis on anonüümsed klassid ja kus neid kasutatakse?

sobes.tech AI

Vastus AI-lt

Anonüümne klass on kohaliku sisemise klassina nimeta.

  • Rakendused:

    • Sündmuste kuulajate loomine GUI rakendustes (näiteks nuppude jaoks).
    • Liideste või abstraktsete klasside "kohapeal" laiendamine, kui vaja on ainult ühte eksemplari ja selle kasutus on lokaalne.
    • Multithread programmeerimises Runnable või Callable eksemplaride loomine.
  • Eelised:

    • Vähendab koodimahu, kui klassi taaskasutus ei ole vajalik.
    • Lihtsustab koodi lugemist lihtsate ja ühekordsete rakenduste puhul.
  • Puudused:

    • Võib muuta koodi vähem loetavaks keerukate rakenduste puhul.
    • Ei saa taaskasutada.
    • Välise klassi väljadele juurdepääs toimub ainult final või efektiivselt final muutujate kaudu vanemates Java versioonides.
// Näide anonüümse klassi kasutamisest `Runnable` jaoks
Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Teostamine anonüümse klassi lõimes.");
    }
};

new Thread(myRunnable).start();
// Näide anonüümse klassi kasutamisest sündmuse kuulajana (hüpoteetiline)
// Mõned UI raamistikud kasutavad sellist lähenemist.
//button.setOnAction(new EventHandler<ActionEvent>() {
//    @Override
//    public void handle(ActionEvent event) {
//        System.out.println("Nupp klõpsatud!");
//    }
//});