12
Curso de Java by Antonio Rodrigues Carvalho Neto

Java orientação a objetos (interfaces)

Embed Size (px)

Citation preview

Page 1: Java   orientação a objetos (interfaces)

Curso de Java

by Antonio Rodrigues Carvalho Neto

Page 2: Java   orientação a objetos (interfaces)

Interfaces

Page 3: Java   orientação a objetos (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 abstract e publicpor padrão, colocar estes modificadores no código éuma redundância.

Page 4: Java   orientação a objetos (interfaces)

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 .

Page 5: Java   orientação a objetos (interfaces)

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);

}

Page 6: Java   orientação a objetos (interfaces)

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);}

}

Page 7: Java   orientação a objetos (interfaces)

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”);

} }

Page 8: Java   orientação a objetos (interfaces)

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)

Page 9: Java   orientação a objetos (interfaces)

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

Page 10: Java   orientação a objetos (interfaces)

Motor

liga()desliga()

float HP;float RPM

Mecanica

concertaMotor(Motor m)retifica(Motor m)

String nomeString RazaoSocial

<<interface>>

Carro

liga()desliga()

Trator

liga()desliga()

Motocicleta

liga()desliga()

Interface� Exemplo de desacoplamento – Motores

Page 11: Java   orientação a objetos (interfaces)

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

Page 12: Java   orientação a objetos (interfaces)

Exercício

� Crie a interface TipoPagamento e faça com que as classes Dinheiro, Cheque e CartaoCredito implementem esta interface, conforme o desenho abaixo.