Aula 06 - Mão Na Massa | Classe (Programação de Computadores) | Java (Linguagem de Programação)

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Transcript
  01/04/2018Java parte 3: Aula 6 - Atividade 9 Mãos na massa: Trabalhando com interfaces | Alura - Cursos online de tecnologiahttps://cursos.alura.com.br/course/java-heranca-interfaces-polimorfismo/task/357321/5   09 Mãos na massa: Trabalhando com interfaces 1) Se não tiver aberto ainda, abra o projeto sobre Funcionario .2) Crie uma classe chamada SistemaInterno  que tenha como atributo uma senha e implemente o método autentica conforme abaixo: public class SistemaInterno{ private int senha = 2222; public void autentica(Gerente g){ boolean autenticou = g.autentica(this.senha); if(autenticou){ System.out.println( Pode entrar no sistema ); } else { System.out.println( Não pode entrar no sistema ); } } } 3) Crie uma classe de testes chamada TesteSistema  com o método main  já gerado.4) Instancie um gerente, utilize o método setSenha  e coloque a senha correta, além disso, instancie o SistemaInterno  e tenteautenticar.O código abaixo deve estar dentro do método main : Gerente g = new Gerente(); g.setSenha(2222); SistemaInterno si = new SistemaInterno(); si.autentica(g); 5) Crie uma classe dministrador  que deve herdar da classe Funcionario . Perceba que o Eclipse já nos entrega inclusive ométodo get onicacao 6) Crie uma classe abstrata Funcionario utenticavel  que herda de Funcionario 7) Complete o código de Funcionario utenticavel  com o código abaixo:  public abstract class FuncionarioAutenticavel extends Funcionario{ private int senha;  01/04/2018Java parte 3: Aula 6 - Atividade 9 Mãos na massa: Trabalhando com interfaces | Alura - Cursos online de tecnologiahttps://cursos.alura.com.br/course/java-heranca-interfaces-polimorfismo/task/357322/5  this.senha = senha; } public boolean autentica(int senha){ if(this.senha == senha){ return true; } else { return false; } } } 8) Modique o código de Gerente  fazendo com que herde de Funcionario utenticavel public class Gerente extends FuncionarioAutenticavel{ //resto do código } 9)Em SitemaInterno  troque a referência do método autentica  para que receba um Funcionario utenticavel , veja abaixo: public class SistemaInterno{ private int senha = 2222; public void autentica(FuncionarioAutenticavel fa){ boolean autenticou = fa .autentica(this.senha); if(autenticou){ System.out.println( Pode entrar no sistema ); } else { System.out.println( Não pode entrar no sistema ); } } } 10) Perceba que se precisarmos que um cliente seja autenticavel, teremos um problema, já que a classe Cliente  precisariaherdar de Funcionario utenticavel  e isso acarretaria em um cliente ter bonicação já que a classe Funcionario utenticavel herda de Funcionario 11) Para resolver isso, faremos uso das Interfaces , transformando a antiga classe abstrata Funcionario utenticavel  nainterface utenticavel  como abaixo: public abstract interface Autenticavel{ public abstract void setSenha(int senha); public abstract boolean autentica(int senha); }  01/04/2018Java parte 3: Aula 6 - Atividade 9 Mãos na massa: Trabalhando com interfaces | Alura - Cursos online de tecnologiahttps://cursos.alura.com.br/course/java-heranca-interfaces-polimorfismo/task/357323/5 12) Na classe Cliente  utilize a palavra reservada implements  para utilizar a interface criada, veja abaixo: public class Cliente implements Autenticavel{ } 13) Complete o código da classe Cliente , implementando os métodos que faltam: public class Cliente implements Autenticavel{ private int senha; @Override public void setSenha(int senha){ this.senha = senha; } @Override public boolean autentica(int senha){ if(this.senha == senha){ return true; } else { return false; } } } 14) Faça com que as classes Gerente  e dministrador  implementem a interface utenticavel , não se esqueça de implementaros métodos e declarar o atributo privado senha! public class Gerente extends Funcionario implements Autenticavel { private int senha; public double getBonificacao(){ // implementação da bonificação do gerente omitida } @Override public void setSenha(int senha){ this.senha = senha; } @Override public boolean autentica(int senha){ if(this.senha == senha){ return true; } else { return false;  01/04/2018Java parte 3: Aula 6 - Atividade 9 Mãos na massa: Trabalhando com interfaces | Alura - Cursos online de tecnologiahttps://cursos.alura.com.br/course/java-heranca-interfaces-polimorfismo/task/357324/5  } } }public class Administrador extends Funcionario implements Autenticavel { private int senha; public double getBonificacao(){ // implementação da bonificação do administrador omitida } @Override public void setSenha(int senha){ this.senha = senha; } @Override public boolean autentica(int senha){ if(this.senha == senha){ return true; } else { return false; } } } 15) No SistemaInterno  modique o método autentica para que agora receba um utenticavel public class SistemaInterno{ private int senha = 2222; public void autentica(Autenticavel fa){ boolean autenticou = fa .autentica(this.senha); if(autenticou){ System.out.println( Pode entrar no sistema ); } else { System.out.println( Não pode entrar no sistema ); } } } 16) Repare que agora podemos usar utenticavel  como um tipo, veja o exemplo abaixo: Autenticavel referencia = new Gerente(); Autenticavel referencia = new Cliente();
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x