Wat zijn anonieme klassen in Java en waar kunnen ze worden toegepast?
sobes.tech AI
Antwoord van AI
Anonieme klassen in Java zijn lokale klassen zonder naam. Ze worden gelijktijdig gedeclareerd en gemaakt. Ze worden meestal gebruikt wanneer eenmalige implementatie van een interface of uitbreiding van een abstracte of gewone klasse nodig is.
Toepassingen van anonieme klassen:
-
Gebeurtenisafhandelaars in GUI: Worden vaak gebruikt om klikafhandelaars voor knoppen of andere gebruikersacties te maken.
// Voorbeeld met Swing ActionListener JButton button = new JButton("Klik mij"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Knop ingedrukt!"); } }); -
Implementatie van interfaces met één abstracte methode (SAM-interfaces): Voor de opkomst van lambda-uitdrukkingen was dit de belangrijkste manier om functionaliteit voor dergelijke interfaces te implementeren.
// Voorbeeld met Runnable new Thread(new Runnable() { @Override public void run() { System.out.println("Thread gestart"); } }).start(); -
Objecten "op het moment": Wanneer je snel een object met gewijzigde gedrag wilt maken ten opzichte van een bestaande klasse zonder een aparte benoemde klasse te hoeven maken.
// Voorbeeld van uitbreiding van een abstracte klasse AbstractList<String> cityList = new AbstractList<String>() { private String[] cities = {"Moskou", "Sint-Petersburg"}; @Override public String get(int index) { return cities[index]; } @Override public int size() { return cities.length; } }; System.out.println(cityList.get(0)); // Uitvoer: Moskou
Anonim Klassen hebben toegang tot lokale variabelen die final of effectief final zijn in het bereik waarin ze zijn gedeclareerd. Ze kunnen geen statische leden hebben en kunnen niet abstract of final zijn.