Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Classi anonime

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305

    Classi anonime

    Supponiamo all'interno di un metodo di avere le seguenti righe di codice
    codice:
    JButton b=new JButton();
    b.addActionListener(new ActionListener(){
             ///classe anonima
    
       }
    }
    La mia domanda è: se le interfacce non possono essere istanziate , ed actionlistener è un interfaccia , e le classi anonime presuppongono l'esistenza di una classe esistente da estendere per essere istanziate , come è possibile new ActionListener()?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quella sintassi non istanzia ActionListener ma una classe anonima che implementa ActionListener
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    e il costruttore è quello di object?? Cioè essendo actionlistener un interfaccia , quale costruttore utilizziamo?
    Ultima modifica di linux_r; 23-07-2014 a 21:57

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Essendo che è una classe (seppure anonima) essa estenderà automaticamente Object (nel tuo caso specifico), che è dotata del costruttore di default, per cui verrà invocato quello.

    Se la tua classe anonima estende una classe, può tranquillamente invocare uno dei costruttori eventualmente messi a disposizione della superclasse.

    Esempio:


    codice:
    ArrayList<String> myInverseArrayList = new ArrayList<String>(10) {
       @Override
       public String get(int pos) {
          return get(getSize() - pos);
       }
    }

    In questo caso la classe anonima invoca esplicitamente il costruttore di ArrayList che accetta un intero come parametro.

    Ciao.
    Ultima modifica di LeleFT; 24-07-2014 a 11:30
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.