Ce sunt clasele anonime în Java și unde pot fi aplicate?
sobes.tech AI
Răspuns de la AI
Clasele anonime în Java sunt clase locale fără nume. Sunt declarate și create simultan. De obicei, sunt utilizate atunci când este nevoie de o implementare unică a unei interfețe sau de extinderea unei clase abstracte sau normale.
Aplicații ale claselor anonime:
-
Manipulatoare de evenimente în GUI: Sunt adesea folosite pentru a crea manipulatoare de clicuri pe butoane sau alte acțiuni ale utilizatorului.
// Exemplu cu Swing ActionListener JButton button = new JButton("Apasă-mă"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Buton apăsat!"); } }); -
Implementarea interfețelor cu o metodă abstractă (interfețe SAM): Înainte de apariția expresiilor lambda, acesta era principalul mod de a implementa funcționalități pentru astfel de interfețe.
// Exemplu cu Runnable new Thread(new Runnable() { @Override public void run() { System.out.println("Fir de execuție pornit"); } }).start(); -
Crearea obiectelor "la fața locului": Când trebuie să creezi rapid un obiect cu comportament modificat față de o clasă existentă, fără a fi nevoie să creezi o clasă cu nume separat.
// Exemplu de extindere a unei clase abstracte AbstractList<String> cityList = new AbstractList<String>() { private String[] cities = {"Moscova", "Sankt Petersburg"}; @Override public String get(int index) { return cities[index]; } @Override public int size() { return cities.length; } }; System.out.println(cityList.get(0)); // Va afișa: Moscova
Clasele anonime au acces la variabile locale finale sau efectiv finale în domeniul în care sunt declarate. Ele nu pot avea membri statici și nu pot fi abstracte sau finale.