Java orientação a objetos (interfaces)

1,218 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,218
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Java orientação a objetos (interfaces)

  1. 1. Curso de Java by Antonio Rodrigues Carvalho Neto
  2. 2. Interfaces
  3. 3. 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 abstract e public por padrão, colocar estes modificadores no código é uma redundância.
  4. 4. 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 ElementoDiagrama eles possuem os métodos desenhar() e redimensionar() implementados com código.
  5. 5. 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); }
  6. 6. 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 utilizar 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 sobrescrever 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); } }
  7. 7. 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”); } }
  8. 8. 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)
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. Exercício Crie a interface TipoPagamento e faça com que as classes Dinheiro, Cheque e CartaoCredito implementem esta interface, conforme o desenho abaixo.

×