A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

FATEC – São Caetano do Sul 1 Prof. Msc. Flávio Viotti Java - Interfaces.

Apresentações semelhantes


Apresentação em tema: "FATEC – São Caetano do Sul 1 Prof. Msc. Flávio Viotti Java - Interfaces."— Transcrição da apresentação:

1 FATEC – São Caetano do Sul 1 Prof. Msc. Flávio Viotti Java - Interfaces

2 FATEC – São Caetano do Sul 2 Prof. Msc. Flávio Viotti Interfaces Interface Podemos definir uma interface como um conjunto de métodos com suas devidas assinaturas sem nenhuma programação. Sintaxe Importante Toda variável criada em uma interface quando implementada irá se transformar em uma constante!!!!! public interface Exemplo { int valor=0; public void metodo1(); public int metodo2(String p1, float p2); public Object metodo3(Object o); }

3 FATEC – São Caetano do Sul 3 Prof. Msc. Flávio Viotti Interfaces Problema Real Imagine um Sistema de Controle de Banco que pode ser acessado além dos Gerentes pelos Diretores do Banco. Então teríamos uma classe Diretor e uma Gerente. public class Diretor extends Funcionario { public boolean autentica(int senha) { //Verifica se a senha confere } public class Gerente extends Funcionario { public boolean autentica(int senha) { //Verifica se a senha confere //Verifica se o depto dele tem acesso }

4 FATEC – São Caetano do Sul 4 Prof. Msc. Flávio Viotti Interfaces Diagrama de Classe do Sistema Repare que o método autenticação de cada tipo de Funcionario pode variar muito. Considere a classe principal SistemaInterno.

5 FATEC – São Caetano do Sul 5 Prof. Msc. Flávio Viotti Interfaces Soluções Criar um método login para cada tipo de funcionário??? R: Irá gerar problema, pois sempre que existir um novo tipo de funcionario autenticável a classe SistemaInterno teria que ser alterada!!!! public class SistemaInterno { void login(Funcionario funcionario) { //chamar o método autentica não da! Nem todo funcioinario tem }

6 FATEC – São Caetano do Sul 6 Prof. Msc. Flávio Viotti Interfaces Nova solução

7 FATEC – São Caetano do Sul 7 Prof. Msc. Flávio Viotti Interfaces Novas classes As classes Diretor e Gerente passariam a extender FuncionarioAutenticavel... E a classe SistemaInterno.. public class FuncionarioAutenticavel extends Funcionario { public boolean autentica(int senha) { //Faz as autenticações } public class SistemaInterno { void login(FuncionarioAutenticavel fa) { int senha = //pegar a senha biometrica boolean ok = fa.autentica(senha) }

8 FATEC – São Caetano do Sul 8 Prof. Msc. Flávio Viotti Interfaces Novo Problema Precisamos que um Cliente tambem acesse o sistema. Mas.... um Cliente não é um funcionário. Necessitamos achar uma opção de referenciar Diretor, Gerente e Cliente de uma mesma maneira. Se existisse uma forma na qual essas classes garantissem a existencia de um determinado método, através de um contrato, resolveríamos o problema. Esse contrato pode vir na forma de uma interface, que define que: Quem quiser ser autenticável precisa saber fazer: 1- autenticar dada uma determinada senha e devolver um booleano

9 FATEC – São Caetano do Sul 9 Prof. Msc. Flávio Viotti Interfaces Nova interface Lemos a interface da seguinte maneira: quem desejar ser autenticavel precisa saber autenticar dado um inteiro e retornando um booleano. Realmente um contrato, onde quem assina se responsabiliza por reescrever esses métodos (cumprir o contrato). public interface Autenticavel { boolean autentica(int senha); } class Gerente extends Funcionario implements Autenticavel { private int senha; // outros atributos e métodos public boolean autentica(int senha) { if(this.senha != senha) return false; // pode fazer outras possiveis verificacoes, como saber se esse // departamento do gerente tem acesso ao Sistema return true; }

10 FATEC – São Caetano do Sul 10 Prof. Msc. Flávio Viotti Interfaces Novo diagrama de classe

11 FATEC – São Caetano do Sul 11 Prof. Msc. Flávio Viotti Interfaces Exercicios 1 – Implemente todas as classes desses slides juntamente com sua programação. Faça um método main() que instancie um objeto de cada classe e veja o que voce pode fazer com as senhas. 2 – Resolva os exercicios do livro [1] pag. 47

12 FATEC – São Caetano do Sul 12 Prof. Msc. Flávio Viotti Interfaces Bibliografia [1] Sintes, Tony; Aprenda Programação Orientada a Objetos em 21 dias – São Paulo: Pearson Education do Brasil, 2002


Carregar ppt "FATEC – São Caetano do Sul 1 Prof. Msc. Flávio Viotti Java - Interfaces."

Apresentações semelhantes


Anúncios Google