apresentação do powerpoint · •imagine uma grande equipe de desenvolvimento de software, onde...
TRANSCRIPT
![Page 1: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/1.jpg)
![Page 2: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/2.jpg)
INTERFACE
• Imagine uma grande equipe de desenvolvimento de software, onde hásubdivisões de acordo com a parte que o software irá atuar, logo, é necessáriauma espécie de contrato para garantir “independência” entre as equipes.
• Assim, saberão o que deverão fazer sem que saibam exatamente como estásendo implementado pela outra equipe.
![Page 3: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/3.jpg)
INTERFACE
• Vamos imaginar que fabricamos softwares para serem implantados embrinquedos como:– Robôs,
– Carrinhos e
– Aviões
• Esses brinquedos possuem como característica principal a capacidade de selocomoverem segundo os comandos de um controle remoto;
• Cada brinquedo entende o que precisa fazer para mover-se para frente ou paratrás, parar e emitir um sinal de localização.
![Page 4: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/4.jpg)
INTERFACE
• Os brinquedos são fabricados por uma companhia e os controles por umaempresa parceira em produção de eletrônicos;
• Ambos são implementados na linguagem Java;
• O contrato estabelecido entre os desenvolvedores é de que todos os produtosque necessitam ser controlados por um controle remoto deverão implementar ainterface Mobilidade, cujo código é apresentado no próximo slide.
![Page 5: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/5.jpg)
INTERFACE
public interface Mobilidade {
public void andarFrente();public void andarTras();public void parar();public void andarDireita();public void andarEsquerda();
}
![Page 6: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/6.jpg)
INTERFACE
• De um lado, as classes que representam os produtos a serem controlados irão“inscrever-se” ou declarar-se implementadoras dessa interface.
• De outro lado, a classe controle remoto irá operar sobre esses métodos semconhecer nada além do que ela precisa saber, ou seja, o conjunto de métodos dainterface mobilidade.
• Por isso, chamados de interface, ou modo de ver os objetos.
• Vejamos a classe Robô que implementa a interface Mobilidade
![Page 7: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/7.jpg)
INTERFACE
public class Robo implements Mobilidade {
public void andarFrente () {System.out.println(“[robô] : andando pra frente...”);
}
public void andarTras () {System.out.println(“[robô] : andando pra tras...”);
}
public void parar() {System.out.println(“[robô] : parado”);
}
![Page 8: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/8.jpg)
INTERFACEpublic void virarDireita(int graus) {
System.out.println(“[robô] : virando pra direita...”);}
public void virarEsquerda(int graus) {System.out.println(“[robô] : virando pra esquerda...”);
}
public void moverBracoDireito() {System.out.println(“[robô] : movendo braço direito...”);
}
public void moverBracoEsquerdo() {System.out.println(“[robô] : movendo braço esquerdo...”);
}}
![Page 9: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/9.jpg)
INTERFACE
• Veja que a classe Robô se define implementadora da interface Mobilidadeatravés da palavra reservada implements, seguida do nome da interfaceMobilidade.
• Outros métodos podem ser definidos livremente pelas classes que implementaminterfaces.
• O que vemos na definição dos métodos moveBracoDireito() emoveBracoEsquerdo(), por exemplo, são típicos de funções de um robô, mas quecertamente não se aplicaria a um veículo de brinquedo.
![Page 10: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/10.jpg)
INTERFACE
• Observaremos os slides a seguir, que apresentam a classe Trator, que tambémimplementa a interface Mobilidade.
• Assim como a classe Robô, a classe Trator implementa a interface Mobilidade edeclara outro método chamado de ergueEscavadeira(), que representa umafuncionalidade extra e que não será controlada remotamente.
![Page 11: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/11.jpg)
INTERFACE
public class Trator implements Mobilidade {
public void andarFrente () {System.out.println(“[trator] : andando pra frente...”);
}
public void andarTras () {System.out.println(“[trator] : andando pra tras...”);
}
public void parar() {System.out.println(“[trator] : parado”);
}
![Page 12: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/12.jpg)
INTERFACE
public void virarDireita(int graus) {System.out.println(“[trator] : virando pra direita...”);
}
public void virarEsquerda(int graus) {System.out.println(“[trator] : virando pra esquerda...”);
}
public void ergueEscavadeira() {System.out.println(“[trator] : ergueEscavadeira”);
}}
![Page 13: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/13.jpg)
INTERFACE
• Assim, como o método moveBracoDireito() da classe Robô, o métodoergueEscavadeira() da classe Trator faz uma atividade específica para obrinquedo.
• E, por isso, só é definido no próprio brinquedo.
• Por fim, temos a classe ControleRemoto que realiza operações sobre objetos“Móveis” que implementam a interface Mobilidade:
![Page 14: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/14.jpg)
INTERFACE
public class controleRemoto {public void moverObjetoPraFrente (Mobilidade obj) {
obj.andarFrente();}
public void moverObjetoPraTras (Mobilidade obj) {obj.andarTras();
}
public void dobrarADireita(inr graus, Mobilidade obj) {obj.virarDireita();
}
public void dobrarADireita(inr graus, Mobilidade obj) {obj.virarEsquerda();
}}
![Page 15: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/15.jpg)
INTERFACE
• Observe que a classe ControleRemoto possui métodos que operam sobreobjetos de classes que implementam a interface Mobilidade, sejam eles quaisforem;
• Por isso, na declaração dos métodos, não está explícito classes como Trator ouRobô, pois o controle trata-os de forma transparente;
• Esse exemplo também representa uma das formas de polimorfismo.
![Page 16: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/16.jpg)
INTERFACE - Resumo
Hoje nós vimos também como definir contratos entre classes, através deinterface. Cada interface apenas declara assinaturas de métodos, nãooferecendo implementações. As classes que implementam a interface éque são obrigadas a oferecer uma implementação para cada um dosmétodos declarados na interface.
![Page 17: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/17.jpg)
INTERFACE - Atividade
• Para praticar os conceitos aprendidos, crie uma classe com um método main()que teste a classe controle remoto, através da criação de objetos da classe Tratore Robô e veja como são tratados de forma idêntica pela classe ControleRemoto.
![Page 18: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária](https://reader031.vdocuments.com.br/reader031/viewer/2022022714/5c09b29509d3f272358ba761/html5/thumbnails/18.jpg)
That's all Folks