Métodos ou construtores de setter

Até agora, vi duas abordagens para definir o valor de uma variável em Java. Às vezes, um construtor com argumentos é usado, outros métodos setter são usados ​​para definir o valor de cada variável.

Eu sei que um construtor inicializa uma variável de instância dentro de uma classe, uma vez que uma classe é instanciada usando a palavra-chave "new".

Mas quando usamos construtores e quando usamos setters?

questionAnswers(10)

yourAnswerToTheQuestion