Hola Javier!
La pregunta que haces: tú como programador puedes decidir tener los métodos que consideres adecuados siempre que sean coherentes. Por ejemplo un método no debe servir para establecer y recuperar un atributo al mismo tiempo porque sería mezclar dos cosas. Un método debe tener una responsabilidad clara y definida, tener un nombre explicativo y claro, etc.
Por otro lado, tener set y get individuales para cada atributo es una práctica habitual que deberías seguir al menos por el momento. Digamos que es un "convenio entre programadores". No es obligatorio, pero es lo más habitual, por lo que durante el aprendizaje es mejor seguir el convenio.
¿Qué ocurriría si quieres establecer la edad para un objeto de tipo Persona? El código de tu ejercicio está bien pero tal y como tienes el código no dispondrías de un método que te permita establecer la edad, por tanto para dar el ejercicio por bueno sería necesario que tuvieras un método set por cada atributo (aunque no sea obligatorio por las normas del lenguaje, sería la forma de cumplir el convenio entre programadores)
Saludos!