Upload
tammaro-trevisan
View
213
Download
0
Embed Size (px)
Citation preview
InterfacceInterfacceJavaJava
InterfacceInterfacceUna interfaccia (interface) in Java ha Una interfaccia (interface) in Java ha una struttura simile a una classe ma una struttura simile a una classe ma può contenere solo:può contenere solo:
costanti e metodi d'istanza astratti costanti e metodi d'istanza astratti
non può contenere: non può contenere: costruttoricostruttori
variabili statichevariabili statiche
variabili di istanzavariabili di istanza
metodi staticimetodi statici
java.lang.Comparjava.lang.Comparableable
public interface Comparable {public interface Comparable {
public int compareTo(Object o);public int compareTo(Object o);
}}
Descrizione del Descrizione del metodometodo
compareTo: Compares this object with the compareTo: Compares this object with the specified object for order. Returns a negative specified object for order. Returns a negative integer, zero, or a positive integer as this integer, zero, or a positive integer as this object is less than, equal to, or greater than object is less than, equal to, or greater than the specified object. [...] the specified object. [...]
The implementor must also ensure that the The implementor must also ensure that the relation is transitive: (x.compareTo(y)>0 && relation is transitive: (x.compareTo(y)>0 && y.compareTo(z)>0) implies y.compareTo(z)>0) implies x.compareTo(z)>0.x.compareTo(z)>0.
[...] It is strongly recommended, but not [...] It is strongly recommended, but not strictly required that (x.compareTo(y)==0) strictly required that (x.compareTo(y)==0) == (x.equals(y)). [...]== (x.equals(y)). [...]
Implementare Implementare un’interfacciaun’interfaccia
Si può dichiarare che una classe Si può dichiarare che una classe implementa (implements) una data implementa (implements) una data interfaccia: in questo caso la classe interfaccia: in questo caso la classe deve fornire una realizzazione per tutti i deve fornire una realizzazione per tutti i metodi astratti dell'interfacciametodi astratti dell'interfaccia
La classe deve fornire metodi con la La classe deve fornire metodi con la stessa firma descritta nell'interfaccia.stessa firma descritta nell'interfaccia.
EsercizioEsercizioRealizzare la classe InteroModulo10 che Realizzare la classe InteroModulo10 che rappresenta i numeri interi modulo 10.rappresenta i numeri interi modulo 10.
La classe deve implementare l’interfaccia La classe deve implementare l’interfaccia Comparable rispettando le specifiche.Comparable rispettando le specifiche.
In particolare deve riuscire a confrontare In particolare deve riuscire a confrontare oggetti InteroModulo10 con oggetti:oggetti InteroModulo10 con oggetti:
InteroModulo10InteroModulo10
IntegerInteger
Usare le Usare le interfacceinterfacce
Possiamo dichiarare una variabile di tipo Possiamo dichiarare una variabile di tipo 'interfaccia: 'interfaccia:
Comparable cmp;Comparable cmp;
Non possiamo istanziare un'interfaccia: Non possiamo istanziare un'interfaccia: Comparable com = new Comparable();Comparable com = new Comparable();
A una variabile di tipo interfaccia possiamo A una variabile di tipo interfaccia possiamo assegnare oggetti di classi che implementano assegnare oggetti di classi che implementano l'interfaccia:l'interfaccia:
Comparable com = new InteroModulo10(5);Comparable com = new InteroModulo10(5);
Su di una variabile di tipo interfaccia possiamo Su di una variabile di tipo interfaccia possiamo invocare solo metodi dichiarati nell'interfacciainvocare solo metodi dichiarati nell'interfaccia
Un esempio di Un esempio di utilizzoutilizzoLa classe ArraysLa classe Arrays
Classe ArraysClasse Arrayspublic static void sort(Object[] a)public static void sort(Object[] a)
Sorts the specified array of objects into Sorts the specified array of objects into ascending order, according to the ascending order, according to the natural ordering of its elements. All natural ordering of its elements. All elements in the array must implement elements in the array must implement the Comparable interface. …the Comparable interface. …
Parameters:Parameters:a - the array to be sorted. a - the array to be sorted.