AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Unit à E3 Eventi. Obiettivi Conoscere il concetto di evento e gestore di evento Conoscere i pulsanti in Swing e la gestione dellevento clic Saper gestire.
Universita di Camerino
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Programmazione object oriented in C++
Java: programmazione concorrente con condivisione di memoria
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
Massa Laura Mela Enrica
Le gerarchie di tipi.
Semantica Operazionale di un frammento di Java: lo stato
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Differenze tra C e C++ Commenti: Adesso puoi inserire dei commenti tra // e la fine della linea. Usare le librerie C: In C++ puoi anche chiamare una funzione.
Programmazione ad Eventi
Grafica Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA Uff
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione al linguaggio Java
Overriding.
1 Eventi/2 Più movimento alle classi. 2 Eventi Java Modo per intercettare il verificarsi di certe condizioni / azioni e fare in modo che venga eseguito.
1 Grafica ed eventi/2 Più movimento alle classi. 2 Esercizio n.1 Realizzare una applicazione che permette il trascinamento di una ellissi allinterno di.
Più movimento alle classi
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 81 Gestione dei colori La gestione dei colori in AWT consente di specificare un qualunque.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Oggetti e dati primitivi
Programmazione Corso di laurea in Informatica
Istruzioni di ripetizione in Java
Programmazione Corso di laurea in Informatica
AA2003/04 © M.A. Alberti Programmazione Eccezioni 1 Le eccezioni in Java Programmazione Corso di laurea in Informatica.
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
1 Le gerarchie di tipi. 2 Supertipi e sottotipi 4 un supertipo –class –interface 4 può avere più sottotipi –un sottotipo extends il supertipo ( class.
Capitolo 9 Interfacce e polimorfismo
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
I File.
Espressioni condizionali
Java base IV: Java e la programmazione O.O.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
AlgoLab - Ereditarieta' Ereditarietà e polimorfismo in Java Laboratorio di Algoritmi 02/03 Prof. Ugo de Liguoro.
Ereditarietà e Polimorfismo
Java Contardi Carlo A.S. 2008/09.
Unità Didattica 3 Linguaggio C
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Linguaggi e modelli computazionali LS Manni Tiziano
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Polimorfismo.
30/11/2004Laboratorio di Programmazione - Luca Tesei1 Interfacce e Polimorfismo.
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Timer Animazioni.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Esercitazione  obiettivo: scrivere una applicazione per il gioco “Centra Bersaglio”  metodo individuazione e definizione delle classi necessarie.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
28/12/2001package 1 Package Pacchetti e interfacce.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

AA2003/04 © M.A. Alberti Programmazione Interfacce 1 Programmazione Corso di laurea in Informatica

AA2003/04 © M.A. Alberti Programmazione Interfacce 2 Uninterfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato costituito dallintestazione senza il corpo della definizione Un metodo astratto viene dichiarato mediante luso del modificatore abstract ma poiché tutti i metodi di un interfaccia sono necessariamente astratti spesso viene omesso Linterfaccia viene usata per definire formalmente linsieme dei metodi che una classe deve implementare

AA2003/04 © M.A. Alberti Programmazione Interfacce 3 public interface Fattibile { public void faiQuesto(); public int faiQuello(); public void faiQuesto(float value, char ch); public boolean faiQuestaltro (int num); } interface è una parola riservata Per nessuno dei metodi in uninterfaccia viene definito il corpo Lintestazione di ciascun metodo termina con il ;

AA2003/04 © M.A. Alberti Programmazione Interfacce 4 Uninterfaccia non può essere instanziata I metodi di un interfaccia hanno visibilità public per default Le classi implementano uninterfaccia 1.Affermandolo nella intestazione della classe 2.Fornendo limplementazione per ciascun metodo astratto dellinterfaccia Una classe che implementa uninterfaccia, deve definire tutti i metodi dellinterfaccia altrimenti il compilatore segnala errore

AA2003/04 © M.A. Alberti Programmazione Interfacce 5 Implementare un interfaccia public class PuoFare implements Fattibile { public void faiQuesto() { // codice } public int faiQuello() { // codice } // etc. } implements è una parola riservata A ogni metodo dellinterfaccia Fattibile viene data la definizione appropriata

AA2003/04 © M.A. Alberti Programmazione Interfacce 6 Implementare un interfaccia La classe deve implementare tutti i metodi dichiarati nellinterfaccia Una classe che implementa uninterfaccia può anche definire altri metodi Una classe può implementare diverse interfacce Le diverse interfacce sono separate da virgole nella clausola di implementazione Parlante.java rappresenta linterfacciaParlante.java Filosofo.java realizza una interfaccia ParlanteFilosofo.java Cane.java realizza una interfaccia ParlanteCane.java

AA2003/04 © M.A. Alberti Programmazione Interfacce 7 Polimorfismo con le interfacce Si ha polimorfismo quando un identificatore può riferirsi a oggetti di tipo differente in momenti diversi Con le interfacce si creano riferimenti polimorfici Il nome di uninterfaccia (es. Fattibile ) può essere usato come tipo di una variabile di riferimento a un oggetto Fattibile obj; Il riferimento obj può puntare un oggetto di una qualunque classe che implementi linterfaccia Fattibile Il riferimento è polimorfo, cioé può assumere diverse forme

AA2003/04 © M.A. Alberti Programmazione Interfacce 8 Polimorfismo con le interfacce Il riferimento polimorfico viene risolto al tempo dellesecuzione, cioé a run time Si attua un legame dinamico Il metodo che viene invocato dipende dal tipo di oggetto a cui obj fa riferimento: obj.faiQuesto(); La stessa linea di codice può eseguire diversi metodi in momenti diversi se loggetto cui punta obj cambia Luso di riferimenti polimorfi può portare a un disegno elegante e robusto del software Parlare.java

AA2003/04 © M.A. Alberti Programmazione Interfacce 9 Alcune interfacce standard Linterfaccia Comparable contiene un metodo astratto chiamato compareTo, usato per confrontare oggetti La classe String implementa linterfaccia Comparable che consente di confrontare stringhe in ordine alfabetico mediante il metodo compareTo specificato ad hoc int compareTo(Object obj) Linterfaccia Iterator indica i metodi da implementare per gestire una collezione di oggetti Caso per caso si deve decidere lordine con cui gli oggetti della collezione devo essere restituiti dai metodi boolean hasNext() object next() void remove()

AA2003/04 © M.A. Alberti Programmazione Interfacce 10 Eventi Un evento è un oggetto che rappresenta il verificarsi di una condizione a cui si vuole eventualmente reagire Esempio. Vogliamo che un programma esegua qualche azione quando: Si muove il mouse Viene premuto il bottone del mouse Il mouse viene mosso Si usa un bottone grafico Si preme un tasto della tastiera Passa un intervallo di tempo Spesso, ma non sempre, gli eventi corrispondono ad azioni dellutente

AA2003/04 © M.A. Alberti Programmazione Interfacce 11 Eventi La libreria standard di Java contiene diverse classi che rappresentano tipici eventi Esempio. La classe MouseEvent o la classe KeyEvent Certi oggetti, come un applet o un bottone grafico, generano un evento Altri oggetti, chiamati listeners, reagiscono agli eventi Esempio. La classe MouseEventListener o la classe KeyListener Gli oggetti listener contengono la definizione di quello che vogliamo che succeda in risposta a un evento

AA2003/04 © M.A. Alberti Programmazione Interfacce 12 Generatore Eventi e listeners Loggetto può generare un evento Ascoltatore Loggetto aspetta che levento sia generato per rispondere Evento Quando si verfica un evento, il generatore chiama il metodo appropriato delloggetto listener, passando loggetto che descrive levento

AA2003/04 © M.A. Alberti Programmazione Interfacce 13 Linterfaccia di un ascoltatore Possiamo creare un oggetto listener scrivendo una classe che implementa una particolare interfaccia Listener La libreria standard di Java contiene diverse interfacce che corrispondono a particolari categorie di eventi Esempio. Linterfaccia MouseListener contiene metodi correspondi a eventi del mouse rappresentati dalla classe MouseEvent Un oggetto listener, viene aggiunto alla componente che può generare levento per stabilire la relazione formale tra il generatore dellevento e loggetto in attesa

AA2003/04 © M.A. Alberti Programmazione Interfacce 14 La classe MouseEvent Genera eventi relativamente allo stato del mouse Mouse pressed - il bottone del mouse è premuto Mouse released - il bottone del mouse è rilasciato Mouse clicked - il bottone del mouse è premuto e rilasciato Mouse entered- il puntatore del mouse è mosso su una particolare componente Mouse exited - il puntatore del mouse è allontanato da una particulare componente I metodi della classe Point getPoint () int getX () int getY () int getClickCount ()

AA2003/04 © M.A. Alberti Programmazione Interfacce 15 Interfaccia MouseListener Linterfaccia MouseListener reagisce a eventi della classe MouseEvent void mousePressed (MouseEvent event) void mouseReleased (MouseEvent event) void mouseClicked (MouseEvent event) void mouseEntered (MouseEvent event) void mouseExited (MouseEvent event) Dots.java DotsMouseListener.java

AA2003/04 © M.A. Alberti Programmazione Interfacce 16 Eventi del movimento del mouse Gli eventi del movimento del mouse rappresentati dalla classe MouseEvent : Mouse moved - il mouse si è mosso Mouse dragged - il mouse si è mosso mentre il bottone del mouse è tenuto premuto La corrispondente interfaccia listener MouseMotionListener void mouseMoved (MouseEvent event) void mouseDragged (MouseEvent event) Una classe può essere sia generatore di eventi sia listener Una classe può essere listener per diversi tipi di eventi RubberLines.java

AA2003/04 © M.A. Alberti Programmazione Interfacce 17 Eventi dei tasti The following are called key events: key pressed – tasto premuto key released – tasto rilasciato key typed – tasto premuto e rilasciato Linterfaccia KeyListener gestisce gli eventi legati ai tasti Le classi Listener sono spesso implementate come classi interne, annidate nelle componenti di cui sono in ascolto Direction.java

AA2003/04 © M.A. Alberti Programmazione Interfacce 18 Animazioni Unanimazione cambia in continuazione immagini per creare lillusione del movimento Possiamo creare animazioni in Java cambiando leggermente unimmagine La velocità di animazione è controllata dalloggetto Timer Loggetto Timer è definito nel pacchetto javax.swing

AA2003/04 © M.A. Alberti Programmazione Interfacce 19 Animazioni Un oggetto Timer genera un ActionEvent ogni n millisecondi (dove n è definito dalloggetto creatore) Linterfaccia ActionListener contiene il metodo actionPerformed Quando il tempo scade e viene generato un ActionEvent, lanimazione viene aggiornata Rebound.java