se você tirar
this.nome = nome; do construtor e usar o construtor para criar um objeto, o valor de nome não será setado no objeto criado, por isso deve ter no construtor.
e se você tirar do metodo set, quando você usar o setNome para setar um valor no atributo nome do objeto, o metodo será chamado normalmente mas não irá setar o valor no atributo nome, por isso também deve ter.
O método get irá retornar o valor do atributo nome, independente de ter this.nome = nome; no construtor e no metodo set, o problema é que se nao tiver neim no construtor e nem no set, não tem como setar valor no atributo nome
EDIT
Só uma observação, você não é obrigado a colocar no construtor, pq vc pode usar o metodo set depois pra setar o valor, porém se você tiver um construtor com parametros, você ja pode criar o objeto passando os valores dos seus atributos por parametro