Hola!
Veo muy bien tu ejercicio! Los dos constructores están bien estructurados: en el Constructor que no recibe parámetros has inicializado los campos de instancia a sus valores por defecto; y en el Constructor que recibe parámetros has realizado las asignaciones correctamente.
Las observaciones que he de hacerte para que tengas en cuenta en tus futuros códigos son las mismas que te he observado en el ejercicio anterior:
Respecto a los nombres elegidos para los parámetros del Constructor, si bien comienzan con minúscula que como siempre se ha dicho es una buena práctica para nombrarlos, la segunda palabra comiénzala con mayúscula para que sea más legible a simple vista, y podamos determinar facilmente de qué se trata. Recomnedaría entonces que al parámetro valornombre, lo renombraras en el código como valorNombre; a valorapellido por valorApellido, y asi suscesivamente.
Siguiendo la misma lógica a los métodos get si los has nombras bien: getApellido, getEdad, getCasado, getEspecialista.
Acostumbrarnos a esta convención trae beneficios. Al principio lo tenemos que pensar, pero luego es algo que nos sale de manera automática.
(En el método getNombre has tenido un error de tipeo, ya que escribiste geNnombre).
Repasemos lo que se nos pedía realizar en el ejercicio:
Define un constructor que reciba los parámetros necesarios para la inicialización y otro constructor que no reciba parámetros. Crea los métodos para poder establecer y obtener los valores de los atributos.
Te han faltado implementar los métodos set. Trata de codificar estos métodos set para cumplir con la consigna del ejercicio.
Lo vienes haciendo muy bien, adelante!