1
resposta

É necessário usar o construtor?

Qual a diferencia entre essas duas implementações?

public class Cliente implements Autenticavel{

    private AutenticacaoUtil autenticador;

    public Cliente(){

        this.autenticador = new AutenticacaoUtil();
    }
//restante do código
public class Cliente implements Autenticavel{

    AutenticacaoUtil au = new AutenticacaoUtil();
//restante do código
1 resposta

Boa Tarde, Carolina!

É necessário usar o construtor? Acredito que nesse caso não faz diferença onde será inicializado a variavel.

Diferenças de implementação: a primeira é uso do private, e a segunda é a inicialização da variável no primeiro código você apenas incluiu a variável do tipo "AutenticacaoUtil" e depois inicializou e a segunda você inclui e inicializou. Para testar a diferença na pratica tente acessar alguma variável no primeiro exemplo antes da inicialização.

public class Cliente implements Autenticavel{

    private AutenticacaoUtil autenticador;

    public Cliente(){
    //nesse exemplo eclipse ira reclamar que variavel não foi inicializada. 
    System.out.println(autenticador );
        this.autenticador = new AutenticacaoUtil();
    }