Sobes.tech
Junior

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.