Hola, tienes que revisar el código porque no estás creando bien los constructores.
En el primer constructor this.nombre = nombre; significa que el atributo nombre toma el valor del parámetro nombre (ahí this te sirve para diferenciar una cosa y otra).
En el segundo constructor this.nombre = nombre; es lo mismo que escribir nombre = nombre; , es decir, que eso no significa nada. this sirve para diferenciar cuándo te refieres a un atributo y cuándo a un parámetro o variable local, pero si no hay parámetro ni variable local this.nombre es lo mismo que nombre.
Cuando el constructor recibe parámetros, servirán para inicializar los atributos con esos parámetros. Cuando el constructor no recibe parámetros, tendrás que inicializarlos a unos valores de defecto (normalmente cadenas vacías, ceros y false).
Salud2s