Escolar Documentos
Profissional Documentos
Cultura Documentos
Trinamendo Java 8 de 10
Trinamendo Java 8 de 10
www.t2ti.com
1
www.t2ti.com
2
para
acompanhar
um
curso
avanado
onde
poder
aprender
www.t2ti.com
3
Mdulo
08
Introduo
Estamos alcanando o fim da nossa trilha que apenas o incio do
maravilhoso mundo que Java nos oferece e este momento bastante adeqado
para introduzirmos os conceitos de classes Abstratas, Interfaces e Excees. Classes
Abstratas e Interfaces so estruturas muito importantes quando programamos
Orientado a Objetos com Java e, visto que j conhecemos os demais fundamentos da
linguagem (reuso, herana, polimorfismo, encapsulamento, mtodos, etc.), est na
hora de aplicarmos estes recursos existentes na linguagem.
Uma das diferenas mais evidentes entre um bom e um mal programa o
tratamento de excees, isto , a capacidade que o seu programa tem de responder a
situaes inesperadas. Quando o tratamento de excees feito adeqadamente o
seu programa fica mais robusto e ao mesmo tempo a usabilidade usabilidade nada
mais do que a facilidade que um usurio tem em utilizar o programa aumenta
sensivelmente.
Porm antes de iniciarmos o novo contedo vamos conhecer uma
importante caracterstica do construtor com parmetros levando em conta o uso de
herana.
Herana - continuao
Ns j vimos que uma classe herda de sua classe pai as suas caractersticas
porm a subclasse no herda o construtor, isto , o construtor individual para cada
classe.
Sempre que o construtor de uma classe invocado ele invoca , quando no
explicitado, implicitamente o construtor da superclasse. Desta forma o construtor da
www.t2ti.com
4
//Demais membros...
www.t2ti.com
5
//Demais membros...
www.t2ti.com
6
Classes Abstratas
At este momento todas as classes que havamos desenvolvido eram
classes concretas, isto todas as nossas classes podem originar objetos. Classes
concretas so estruturas definidas e prontas para instanciarem objetos.
Uma classe abstrata se comporta de forma diferente de uma classe
concreta. Uma classe abstrata nunca pode ser instanciada de forma direta, seu
maior propsito, a razo da sua existncia, ser estendida.
Para que serve esta classe ento? Imagine a seguinte situao, ns temos
uma hierarquia de classe conforme abaixo:
www.t2ti.com
7
Mtodo concreto
cada uma das subclasses da classe Animal a fim de que forneam um comportamento
adeqado pois, cada tipo de animal emite um som diferente dos demais.
Porm, da forma como foi feito, esta condio no garantida pois,
podemos ter uma subclasse da classe Animal que no sobreescreve o mtodo emitir
som, no entanto existem formas de forarmos esta condio. Ao modificarmos o
mtodo com abstract
Mtodo abstrato
abstrato vlido.
Uma classe abstrata pode conter apenas mtodos abstratos, concretos ou
ambos. No entanto a presena de um mtodo abstrato torna, obrigatoriamente, a
classe abstrata tambm.
www.t2ti.com
8
Interfaces
Pense em uma interface como sendo uma classe totalmente abstrata, isto
que no possui mtodos concretos. Desta forma, quando uma classe implementa uma
interface ela obrigatoriamente deve implementar o conjunto de mtodos definidos
pela interface.
Do site da SUN, implementar uma interface permite a uma classe tornarse mais formal em relao ao comportamento que ela promete fornecer. Interfaces
formam um contrato entre a classe e o mundo exterior, e este contrato garantido
em tempo de compilao pelo compilador. Se a sua classe deseja implementar uma
interface, todos os mtodos definidos pela interface devem aparecer no corpo antes
da sua classe ser compilada.
Em sntese, quando uma classe concreta implementa uma interface ela est
garantindo que possui os mtodos especificados bem como a implementao destes,
mesmo que o corpo do mtodo seja vazio. Aqui cabe uma observao: O uso de
interfaces garante a existncia do comportamento porm no garante a sua correta
implementao.
Da mesma forma que classes, a definio de uma interface cria um novo
www.t2ti.com
9
www.t2ti.com
10
//getters e setters...
Cad a implementao?
Implementao do mtodo
www.t2ti.com
11
!
}
www.t2ti.com
12
www.t2ti.com
13
www.t2ti.com
14
www.t2ti.com
15
Error:
Hierarquia
em
laranja na
imagem,
representam
situaes
www.t2ti.com
16
Exceo
Quando acontece
ArrayIndexOutOfBounds
Exception
ClassCastException
IllegalArgumentException
IllegalStateException
NullPointerException
NumberFormatException
StackOverflowError
NoClassDefFoundError
www.t2ti.com
17
exceo,
logo
seguir
ns
instanciamos
um
objeto
do
tipo
conhecimentos
em
herana
faamos
uma
extenso
da
classe
QuantidadeLitrosException(String mensagem)
{
super(mensagem);
}
www.t2ti.com
18
Exerccios
Aprenda com quem tambm est aprendendo, veja e compartilhe as suas
respostas no nosso Frum:
Exerccios Mdulo 08 Classes Abstratas, Interfaces e Excees
1. Crie uma classe abstrata que represente um quadriltero e receba como
parmetros do construtor os quatro valores referentes a cada lado.
2. Estenda a classe criada no exerccio 1, a subclasse deve representar um
quadrado e portanto receber como parmetro um nico valor referente aos
seus lados.
3. Estenda novamente a classe criada no exerccio 1, a subclasse deve representar
um retngulo e portanto deve receber como parmetros dois valores
diferentes.
4. Crie uma interface denominada FiguraGeometrica, adicione os mtodos calcular
rea e calcular permetro.
www.t2ti.com
19
igual
zero
ou
negativo
seja
jogada
uma
exceo
do
tipo
www.t2ti.com
20
www.t2ti.com
21