Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 7 - Atividade 1 - Revendo a composição

A Solução proposta foi criar a classe AutenticacaoUtil e nas classes Cliente, Administrador, Gerente autenticar da seguinte forma:

public class Cliente implements Autenticavel {

private AutenticacaoUtil autenticador;

public Cliente() { this.autenticador = new AutenticacaoUtil(); }

@Override public boolean autentica(int senha) { return this.autenticador.autentica(senha); }

@Override public void setSenha(int senha) { this.autenticador.setSenha(senha);

}

}

Quando eu fui criar do meu jeito eu implementei da forma a seguir e gostaria de entender se existe alguma diferença entre elas além da forma de escrita, pois ambos funcionam aparentemente iguais.

public class Cliente implements Autenticavel {

private AutenticacaoUtil autenticador =new AutenticacaoUtil();

public Cliente(){ this.autenticador = new AutenticacaoUtil(); }

@Override public boolean autentica(int senha) { return autenticador.autentica(senha); }

@Override public void setSenha(int senha) { autenticador.setSenha(senha);

}

}

2 respostas
solução!

Olá Rafael!

O código funciona mas fica ambíguo pois você está criando uma instancia em cima da outra.

Você pode escolher instanciar no corpo da Classe ou no Construtor (um ou outro). Por convenção costumamos escrever no construtor mesmo.

Espero que tenha ajudado!

Olá Rafael!

Estou fechando o tópico ok?

Qualquer dúvida pode nos chamar no fórum!

Abs, bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software