Kas yra anoniminės klasės Java ir kur jas galima taikyti?
sobes.tech AI
Atsakymas iš AI
„Java“ anoniminiai klasės yra vietiniai be vardo klasės. Jie yra deklaruojami ir kuriami vienu metu. Paprastai jie naudojami, kai reikia vienkartinės sąsajos įgyvendinimo arba abstraktaus ar įprasto klasės išplėtimo.
Anoniminių klasių taikymas:
-
Įvykių tvarkytojai GUI: Dažnai naudojami kurti mygtukų paspaudimo ar kitų naudotojo veiksmų tvarkytojus.
// Pavyzdys su Swing ActionListener JButton mygtukas = new JButton("Paspausk mane"); mygtukas.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Mygtukas paspaustas!"); } }); -
Sąsajų, turinčių vieną abstraktų metod, įgyvendinimas (SAM sąsajos): Iki lambda išraiškų, tai buvo pagrindinis būdas įgyvendinti tokių sąsajų funkcionalumą.
// Su Runnable pavyzdys new Thread(new Runnable() { @Override public void run() { System.out.println("Srautas pradėtas"); } }).start(); -
Objektų kūrimas "gyvai": Kai reikia greitai sukurti objektą su pakeistu elgesiu iš esamo klasės be būtinybės kurti atskirą pavadintą klasę.
// Abstraktaus klasės išplėtimas AbstractList<String> miestuSarasas = new AbstractList<String>() { private String[] miestai = {"Maskva", "Sankt Peterburgas"}; @Override public String get(int index) { return miestai[index]; } @Override public int size() { return miestai.length; } }; System.out.println(miestuSarasas.get(0)); // Išves: Maskva
Anoniminiai klasės turi prieigą prie final arba efektyviai final vietinių kintamųjų, kurie yra apibrėžti jų apylinkėse. Jie negali turėti statinių narių ir negali būti abstract arba final.