12.07.2015 Views

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INTERFACES 106(troca <strong>de</strong> mensagens). Po<strong>de</strong>mos dizer que os objetos se “encaixam” através dos métodos públicosassim como um plugue se encaixa em uma tomada através dos pinos.Para os objetos <strong>de</strong> uma aplicação “conversarem” entre si mais facilmente é importante padronizaro conjunto <strong>de</strong> métodos oferecidos por eles. Assim como os plugues encaixam nas tomadas maisfacilmente graças aos padrões <strong>de</strong>finidos pelo governo.Um padrão é <strong>de</strong>finido através <strong>de</strong> especificações ou contratos. Nas aplicações orientadas a objetos,po<strong>de</strong>mos criar um “contrato” para <strong>de</strong>finir um <strong>de</strong>terminado conjunto <strong>de</strong> métodos que <strong>de</strong>ve serimplementado pelas classes que “assinarem” este contrato. Em orientação a objetos, um contrato échamado <strong>de</strong> interface. Um interface é composta basicamente por métodos abstratos.ExemploNo sistema do banco, po<strong>de</strong>mos <strong>de</strong>finir uma interface (contrato) para padronizar as assinaturasdos métodos oferecidos pelos objetos que representam as contas do banco.1 interface Conta {2 void <strong>de</strong>posita ( double valor );3 void saca ( double valor );4 }Código Java 11.1: Conta.javaOs métodos <strong>de</strong> uma interface não possuem corpo (implementação) pois serão implementadosnas classes vinculadas a essa interface. Todos os métodos <strong>de</strong> uma interface <strong>de</strong>vem ser públicos eabstratos. Os modificadores public e abstract são opcionais.As classes que <strong>de</strong>finem os diversos tipos <strong>de</strong> contas que existem no banco <strong>de</strong>vem implementar(assinar) a interface Conta.1 class ContaPoupanca implements Conta {2 public void <strong>de</strong>posita ( double valor ) {3 // implementacao4 }5 public void saca ( double valor ) {6 // implementacao7 }8 }Código Java 11.2: ContaPoupanca.java1 class ContaCorrente implements Conta {2 public void <strong>de</strong>posita ( double valor ) {3 // implementacao4 }5 public void saca ( double valor ) {6 // implementacao7 }8 }Código Java 11.3: ContaCorrente.javaAs classes concretas que implementam uma interface são obrigadas a possuir uma implementaçãopara cada método <strong>de</strong>clarado na interface. Caso contrário, ocorrerá um erro <strong>de</strong> compilação.106 www.<strong>k19</strong>.com.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!