armandodaniel777
2,358 views
12 slides
Aug 28, 2013
Slide 1 of 12
1
2
3
4
5
6
7
8
9
10
11
12
About This Presentation
No description available for this slideshow.
Size: 56.58 KB
Language: pt
Added: Aug 28, 2013
Slides: 12 pages
Slide Content
Curso de Java
by Antonio Rodrigues Carvalho Neto
Interfaces
Interface
Éum contrato sem implementação entre dois ou mais
objetos. A interface serve como balizador para
determinar quais métodos um objeto pode esperar do
outro.
Na interface não háatributos apenas assinaturas dos
métodos.
A interface éutilizada para reduzir o acoplamento,
facilitando o reuso de classes.
Todos os métodos na interface são abstracte public
por padrão, colocar estes modificadores no código é
uma redundância.
Exemplo de Interface
Nota : A interface ElementoDiagrama tem apenas a declaração de métodos
sem código. Já as classes Retangulo e Circulo pelo fato de
implementarem a interface ElementoDiagramaeles possuem os métodos
desenhar()e redimensionar()implementados com código.
Interface
A interface deve ser criada utilizando-se:
<modificador> interface <nome da interface> {
<tipo de retorno 1> <nome metodo 1> (<parametros>);
<tipo de retorno 2> <nome metodo 2> (<parametros>);
<tipo de retorno n> <nome metodo n> (<parametros>);
....
}
Exemplo:
public interface Funcionario {
public void recebeSalario(float valor);
public void bateCartaoEntrada(Date horaAtual);
public void bateCartaoSaida(Date horaAtual);
}
Interface
Uma classe pode implementar uma ou mais interfaces, quando isso ocorre
a classe deve implementar ou seja colocar código em todos os métodos
recebidos da(s) interface(s).
Para implementar a interface a classe precisa utili zar a palavra-chave
implements seguida do nome da interface.
Se houver mais de uma interface implementada, então os nomes devem ser
separados por virgula (,)
Ao implementar mais de uma interface a classe precisa s obrescrever códigos
em todos os métodos recebidos das interfaces implementadas.
Exemplo:
public class operador implements Funcionario {
public void recebeSalario(float valor) {
System.out.println(Salário Recebido no valor de : + valor);
}
public void bateCartaoEntrada(Date horaAtual) {
System.out.println(Chegada as : + horaAtual);
}
public void bateCartaoSaida(Date horaAtual) {
System.out.println(Saida as : + horaAtual);
}
}
Interface
As interfaces podem ser representadas da
seguinte forma:
public interface ElementoDiagrama {
public void desenhar();
public void redimensionar(); }
public class Retangulo implements
ElementoDiagrama{
int X;
int Y;
int Base;
int Altura
public void desenhar() {
System.out.println(Desenha o
retangulo na posição ( + X + , +
Y + ) com Altura
+ Altura + e
comprimento
+ Base);
}
public void redimensionar () {
System.out.println(Pede novos valores
de X, Y e Base e Altura para o usuario);
} }
public class Circulo implements ElementoDiagrama{
int X;
int Y;
int Raio;
public void desenhar() {
System.out.println(Desenha o circulo na
posição ( + X + , + Y + ) com Raio
+ Raio);
}
public void redimensionar () {
System.out.println(Pede novos valores de X, Y
e Raio para o usuario);
} }
Interface
Exemplo de desacoplamento Arquitetura
InterfaceUsuario
mostraDados(String dados)
Sistema
mostra(InterfaceUsuario i)
String Dados
<<interface>>
Web
mostraDados(String dados)
Desktop
mostraDados(String dados)
Celular
mostraDados(String dados)
public interface InterfaceUsuario {
public void mostraDados(String dados); }
public class Web implements InterfaceUsuario {
HttpServletRequest req;
HttpServletResponse res;
public void mostraDados(String dados) {
PrintWriter out = res.getWriter();
out.println(<H1>+ dados + </H1>);
} } public class Sistema {
String Dados;
public void mostra(InterfaceUsuario i) {
i.mostraDados(Dados : " + Dados);
}
}
public class Desktop implements InterfaceUsuario {
public void mostraDados(String dados) {
JOptionPane.showMessageDialog(null, dados);
}
}
public class Celular implements InterfaceUsuario {
public void mostraDados(String dados) {
alert = new Alert( dados );
Display.getDisplay(this).setCurrent(alert);
}
}
Interface
Exemplo de desacoplamento Arquitetura
Motor liga()
desliga()
float HP;
float RPM
Mecanica
concertaMotor(Motor m)
retifica(Motor m)
String nome
String RazaoSocial
<<interface>>
Carro liga()
desliga()
Trator liga()
desliga() Motocicleta
liga()
desliga()
Interface
Exemplo de desacoplamento Motores
public interface Motor {
public void liga();
public void desliga(); }
public class Motocicleta implements Motor {
public void liga() {
System.out.println(Motor Gasolina ligado);
}
public void desliga() {
System.out.println(Motor Gasolina
desligado);
} } public class Mecanica {
String RazaoSocial;
String Nome;
public void concerta( Motor m) {
m.desliga();
System.out.println(Consertado...);
m.liga();
}
public void retifica( Motor m) {
System.out.println(Retificando...);
}
}
public class Carro implements Motor {
public void liga() {
System.out.println(Motor Alcool ligado);
}
public void desliga() {
System.out.println(Motor Alcool desligado);
}
}
public class Trator implements Motor {
public void liga() {
System.out.println(Motor Diesel ligado);
}
public void desliga() {
System.out.println(Motor Diesel desligado);
}
}
Interface
Exemplo de desacoplamento Motores
Exercício
Crie a interface TipoPagamentoe faça com que as
classes Dinheiro, Cheque e CartaoCredito
implementem esta interface, conforme o desenho
abaixo.