Hola Luis:
Tu observación es interesante, y propongo que lo analicemos con un ejemplo.
Supongamos que un nuevo bombero ingresa al cuartel y debemos agregarlo al programa que nosotros hayamos desarrollado.
El bombero Julián Gómez, de 23 años de edad, soltero y especialista desde hoy es un nuevo bombero. Para ellos creamos un nuevo objeto y como parámetros pasamos todos estos datos citados.
Al cabo de un tiempo, tendremos que actualizar su edad, y tal vez también haya que actualizar su estado civil.
Conclusión: si bien en un Constructor podemos inicializar los datos con parámetros (y no con valores por defecto) siempre tendremos que disponer de los métodos set y get de cada uno de nuestros campos de instancia, ya que será la única manera de leerlos y modificarlos.