Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lezione anonymousinnerclass

776 views

Published on

come si spiega la sintassi di una classe anonima

Published in: Education
  • Be the first to comment

  • Be the first to like this

Lezione anonymousinnerclass

  1. 1. Lezione Anonymous Inner Class Silvano Natalizi Apr 19, 2010
  2. 2. Obiettivo della lezione <ul><li>L’obiettivo di questa lezione è quello di insegnare come si scrive una classe interna anonima. </li></ul><ul><li>Anonymous inner class </li></ul>
  3. 3. Classe interna
  4. 4. Bottone, listener, classe interna <ul><li>Quando si preme il bottone b1, il suo evento viene ascoltato dall’oggetto listener che gli è stato associato tramite l’istruzione : </li></ul><ul><ul><li>b1.addActionListener(new InviaMessaggio()); </li></ul></ul><ul><li>La classe InviaMessaggio è una classe interna che implementa ActionListener e definisce il metodo actionPerformed(). </li></ul>
  5. 5. Istruzione alternative <ul><li>Avremmo potuto codificare anche al seguente modo: </li></ul><ul><li>ActionListener a1=new InviaMessaggio; </li></ul><ul><li>b1.addActionListener(a1); </li></ul>
  6. 6. Sintassi alternativa- prima fase <ul><li>Trasformiamo la sintassi per gradi fino ad arrivare alla sintassi della classe anonima. </li></ul><ul><li>1) ActionListener a1=new ActionListener(); </li></ul><ul><ul><li>Non si può fare perché non si può instanziare una classe interfaccia </li></ul></ul><ul><li>2) ActionListener a1=new X(); </li></ul><ul><ul><li>Class X implements ActionListener{ </li></ul></ul><ul><ul><li>public void actionPerformed(ActionEvent e){ </li></ul></ul><ul><ul><li>// execute when è rilevato un ActionEvent </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul>
  7. 7. Sintassi alternativa – seconda fase <ul><li>Ora supponiamo che si possa inserire la intera dichiarazione della classe X nella istruzione che instanzia un oggetto ActionListener: </li></ul><ul><li>ActionListener a1=new ActionListener() class X implements ActionListener{…}; </li></ul><ul><li>Normalmente non vediamo il punto e virgola dopo una parentesi graffa, ma in questo caso il punto e virgola serve per terminare la singola istruzione che inizia con “ActionListener a1 =…” ; </li></ul>
  8. 8. Sintassi alternativa – terza fase <ul><li>Ora assumiamo che la classe X sia senza nome, ma abbia solo il corpo: </li></ul><ul><li>ActionListener a1=new ActionListener(){…}; </li></ul><ul><li>Ecco questa è in essenza la sintassi di una classe anonima . Anonima perché senza nome. </li></ul>
  9. 9. Classe anonima per l’interfaccia listener <ul><li>Nel caso di ActionListener, dobbiamo implementare il metodo actionPerformed, racchiudendo il suo codice all’interno del body della classe anonima, come segue: </li></ul><ul><li>ActionListener a1=new ActionListener(){ </li></ul><ul><ul><li>public void actionPerformed(ActionEvent e){ </li></ul></ul><ul><ul><li>// execute quando un ActionEvent è rilevato </li></ul></ul><ul><ul><li> } </li></ul></ul><ul><ul><li>}; </li></ul></ul>
  10. 10. Classe anonima per l’interfaccia View.OnclickListener
  11. 11. The End

×