1
resposta

Minha Duvida é sobre construtor.

Então, me deparei com um exercicio que havia dois construtores, sendo um vazio e outro que tinha objetos declarados. A forma de declaracao foi a seguinte " public Produto(String nome, double preco) { nome = nome; preco = preco; } " e eu queria perguntar se tem algum problema de declararmos desta forma sem o uso da palavrinha "this.".

1 resposta

Fala meu caro, tudo bem?

O uso da palavra chave "this" é utilizado para a atribuição de valores. Quando recebemos um parâmetro em nosso construtor que possui o mesmo nome de alguma das nossas variáveis locais e realizamos uma atribuição como "nome = nome;", o sistema entende que estamos atribuindo o valor do parâmetro à ele mesmo. Sendo assim, algumas IDE's nos darão até algumas sugestões, pois entendem que o valor do parâmetro nome está sendo atribuído à ele mesmo. É como se fosse o seguinte:

public class Produto {
    private String nome;
    private double preco;

    
    public Produto(String "Henzo", double 15.50) {
            Henzo = Henzo;
            15.50 = 15.50;
    }

}

Agora com o uso da palavra-chave "this", obtemos o seguinte código:


public class Produto {
    private String nome;
    private double preco;
    
    public Produto(String "Henzo", double 15.50) {
            this.nome = Henzo;
            this.preco = 15.50;
    }
    
    //implementado getters e toString() nas outras linhas...

}

Com isto, se instanciarmos um objeto do tipo produto dentro da nossa classe principal e printarmos ele, obteríamos algo como isto:


Produto produto = new Produto("Henzo", 15.50);

System.out.println(produto);

//saída:

Produto: nome = Henzo
                preco = 15.50