Beruflich Dokumente
Kultur Dokumente
a) Interfaces;
b) Classes abstractas;
c) Classes Concretas Implementaes;
Interfaces e Comparator 1
Interfaces so especificaes sintcticas (algumas genricas ie.
Parametrizadas) de constantes e mtodos que, em geral, correspondem a
propriedades que qualquer classe que as pretenda ter/satisfazer pode
implementar, desde que fornea implementaes para todos os mtodos
especificados na interface.
Interfaces e Comparator 2
Interfaces so Tipos, tal como as classes, sendo compatveis com o tipo das
classes que as implementam, cf.
Assim:
Interfaces e Comparator 3
Uma Classe pode implementar vrias interfaces:
// mtodos de instncia
..
// implementao de Colorivel
public int getCor() { return cor; };
public void setCor(int ncor) { cor = ncor; };
// implementao de Datavel
public void setData(GregorianCalendar data) {
this.data = (GregorianCalendar) data.clone();
}
public GregorianCalendar getData() {
return (GregorianCalendar) data.clone();
}
}
Interfaces e Comparator 4
As Interfaces de Java podem fazer parte de uma hierarquia de interfaces.
interfaces.
Mas podem ser interfaces livres, desligadas de todas as outras. Por vezes
d mesmo jeito colocar certas interfaces numa hierarq
hierarquia
ierarquia mltipla. Por
exemplo, em JCF:
TreeMap<K, V>
LinkedHashMap<K, V>
Interfaces e Comparator 5
No nosso exemplo anterior,
anterior, poderamos ter:
Qualquer classe que pretenda ter uma ordem natural (>, = <) definida para
as suas instncias deve implementar esta interface.
interface. A classe String e as
classes Wrapper implementam esta
esta interface
interface Comparable<T> e por isso
so automaticamente ordenadas em TreeSet<E> e TreeMap<K,V>..
Interfaces e Comparator 6
Porm, o que fazer se se pretender ordenar objectos fora da sua ordem
natural ou se se pretender ordenar objectos que no implementam
Comparable<T> ?
TreeSet<E>(Comparator<E>)
Interfaces e Comparator 7
import java.util.Comparator;
public class PontoComparator implements Comparator<Ponto2D> {
public int compare(Ponto2D p1, Ponto2D p2) {
if(p1.getX() < p2.getX()) return -1;
if(p1.getX() > p2.getX()) return 1;
if(p1.getY() < p2.getY()) return -1;
if(p1.getY() > p2.getY()) return 1; else return 0;
}
}
Interfaces e Comparator 8
/**
* TestePontoComparator
*
* @author F. Mrio Martins
* @version 1/2006
*/
import static java.lang.System.out;
import java.util.*;
public class TestePontoComparator {
Interfaces e Comparator 9
RESULTADOS:
Interfaces e Comparator 10
Relembrando a classe Plano, vamos redefini-la agora como,
// Mtodos de instncia
Interfaces e Comparator 11
Classes e Interfaces JAVA pertencem a duas hierarquias distintas. A
hierarquia de classes de tipo simples enquanto que a de classes uma
hierarquia mltipla (1 interface pode herdar de mais do que uma).
classe tipo
Interf0
Classe A Interf0 Interf3
implements
extends
Interf1 Interf2
extends
extends extends
Interf4
Classe B Interf1
implements
HIERARQUIA DE INTERFACES
classe tipo
Interfaces e Comparator 12
EXEMPLOS:
ItemMulti
Apagavel
DVD CD Hi8
Regravavel
Interfaces e Comparator 13
INTERFACES PODEM SER IMPLEMENTADAS POR QUAISQUER CLASSES EM
QUALQUER PONTO DA HIERARQUIA
Lavavel
Object
Veiculo Animal
Interfaces e Comparator 14
INTERFACES VERSUS CLASSES ABSTRACTAS
A tabela apresenta mais algumas diferenas entre a utilizao de interfaces e de clas-
ses abstractas, relativamente a propriedades diversas, no tanto conceptuais mas mais
relacionadas com a funcionalidade e restries na utilizao.
Interfaces e Comparator 15