Los constructores se parecen a los métodos, pero no lo son.
La principal diferencia es que NO tienen retorno, así que los constructores no hay que indicar void ni nada:
public void Bombero(String valorNombre, String valorApellido, int valorEdad, boolean valorCasado, boolean valorEspecialista){
nombre=valorNombre;
apellido=valorApellido;
edad=valorEdad;
casado=valorCasado;
especialista=valorEspecialista;
}
Simplemente se indica que son public, y nada más:
public Bombero(String valorNombre, String valorApellido, int valorEdad, boolean valorCasado, boolean valorEspecialista){
nombre=valorNombre;
apellido=valorApellido;
edad=valorEdad;
casado=valorCasado;
especialista=valorEspecialista;
}
Otra cosa, los atributos casado y especialista son cosas distintas, no guardan relación entre ellos, por tanto cada uno debería tener su propio setter, y no uno compartido:
public void setCasadoEspecialista(boolean valorCasado, boolean valorEspecialista){
casado=valorCasado;
especialista=valorEspecialista;}
Y sobre tu duda:
Los constructores con parámetros y los setters cubren necesidades distintas.
Un constructor con parámetros sirve para poder crear en una sola línea un objeto con valores aplicados en todos sus atributos.
Aquí un ejemplo de un bombero "soltero":
Bombero bombero1 = new Bombero("Paquito", "Mangueras", 25, false, true);
Ya tenemos un bombero construido, pero es posible que luego más tarde queramos cambiar los valores de esos atributos, porque nos hemos equivocado, o porque Paquito se ha casado y ya no es soltero, o por lo que sea...
Entonces que hacemos, ¿llamar a su constructor para crear un nuevo objeto con los nuevos valores de atributos?
Eso no es práctico, además en un programa real donde unos objetos están relacionados con otros, crear un nuevo objeto de cero supone perder esas relaciones e incluso otra información.
Así que lo mejor es usar los setters:
//Paquito abandona la soltería
bombero1.setCasado(true);
//Ahora además, hay que tratarle como a un señor
bombero1.setNombre("Don Francisco");
Así que como hemos dicho, el
constructor con parámetros lo usaremos para la
creación inicial del objeto.
Si luego queremos hacer
modificaciones de sus atributos, vamos a necesitar
los setters.Un saludo.