Anda di halaman 1dari 21

Programao OO em Java

Profa Andra Schwertner Charo DELC/CT/UFSM

Sumrio
Classes abstratas Interfaces Tipos genricos Colees

Classes abstratas
So classes que no

podem ser instanciadas, porque representam entidades "incompletas"


Possuem mtodos

abstratos que devem ser sobrescritos nas classes derivadas mensagem do compilador:
Bicho.java: Bicho is abstract; cannot be instantiated Bicho b = new Bicho(); ^ 1 error

Exemplo
Mtodo abstrato som()

Mtodo concreto som()

Cria array de referncias para Bichos

Classes abstratas
Mtodos abstratos s

Erro: classe no abstrata com mtodo abstrato

podem ser declarados em classes abstratas


Em geral, classes

abstratas tambm possuem mtodos concretos


Se uma classe s tem

mensagem do compilador: Bicho.java: Bicho is not abstract and does not override abstract method som() in Bicho class Bicho ^ 1 error

mtodos abstratos, melhor declar-la como interface

Java na Desciclopdia :-)


Classes abstratas :-)

Fonte: http://desciclopedia.org/wiki/Java_(linguagem_de_programao)

Interfaces
So um tipo de encapsulamento contendo

principalmente mtodos
Definem um conjunto de mtodos

(comportamento) que devem ser implementados em classes que herdam a interface interfaceMatricial { publicvoidtranspoe(); publicvoidinverte(); } interfaceRunnable { publicvoidrun(); }

Implementando interfaces
Usar a palavra-chave implements

classMatrizEsparsa implementsMatricial { publicvoidtranspoe() {...} publicvoidinverte() {...} }

classWorker implementsRunnable { publicvoidrun() {...} }

Implementando interfaces
Classes que implementam

uma mesma interface garantem que tm um comportamento comum


A plataforma Java tem

diversas interfaces prdefinidas (ActionListener, Scrollable, Runnable, etc.)

Mais sobre interfaces


Java suporta "herana mltipla" de interfaces,

mas no de classes
classA{...} interfaceB{...} interfaceB{...} classXextendsA implementsB,C {...}

Mais sobre interfaces


Atributos declarados em interfaces so

implicitamente publicstaticfinal (constantes)


Mtodos declarados em interfaces so

implicitamente publicabstract
Veja mais sobre interfaces em: http://download.oracle.com/javase/tutorial/java/concepts/interface.html

Tipos genricos
Classes genricas definidas em funo de algum

parmetro (tipos parametrizveis)


Polimorfismo paramtrico

Usando tipos genricos


Para usar o tipo, define-se o parmetro especfico

Veja mais em: http://download.oracle.com/javase/tutorial/java/generics/index.html

Collections em Java
Um framework com estruturas de dados e

algoritmos reutilizveis, disponveis em java.util.


Componentes

Interfaces: definem como as estruturas podem ser manipuladas (ex.: List) Implementaes: definem estruturas concretas (ex.: ArrayList, LinkedList) Algoritmos: mtodos estticos que se aplicam a diferentes colees

Collections Interface

Fonte: http://download.oracle.com/javase/tutorial/collections/interfaces/index.html

Exemplo de implementao: ArrayList


Representa uma lista que pode ser acessada

por ndices (0 a size()-1)


Implementa mtodos da interface List:

add(E e): adiciona elemento size(): nmero de elementos da lista clear(): remove todos os elementos isEmpty(): verifica se lista vazia remove(Object o): remove elemento remove(int index): remove elemento etc.

Exemplo

sada: Tamanho inicial: 0 Novo tamanho: 4 Conteudo: [Sicrano, Fulana]

Percorrendo a lista
Lao for tradicional, com ndice

for(inti=0;i<sl.size();i++){ Stringelem=sl.get(i); System.out.println(elem); }

Percorrendo a lista com for-each


Lao for alternativo (for-each) Inspirado na programao funcional Pode ser usado com arrays ou classes

Collection
tipo dos elementos na coleo

referncia para elemento da coleo

referncia para a coleo

for(Stringelem:sl){ System.out.println(elem); }

Algoritmos
Ordenao, busca, embaralhamento, etc.

Algoritmos: sort

importjava.util.*; classSort{ publicstaticvoidmain(String[]args){ String[]array={"cadabra","abra"}; List<String>list=Arrays.asList(array); Collections.sort(list); System.out.println(list); } }

Anda mungkin juga menyukai