Hola tinezmatias!
En cuanto a tu ejercicio, veo solo un detalle.
Tu has declarado como nombre de clase "Personas" en POO
(Programación orientada a objetos) este tipo de pluralismo no es factible, míralo de la siguiente forma: Cuando creas una clase, esta define objetos de su tipo, cuando usas la sentencia: new Persona(); estas creando una instancia de clase, osea un objeto Personas, ahora te pregunto: suena lógico que sea Personas cuando solo estas creando un objeto a la ves? no seria mas lógico que tu clase se llamara Persona (Singular)?
A la hora de crear clases, lo correcto es usar el singular de su nombre, Ejemp Persona, Taxi, Medico, ect
En lo personal una pequeña recomendación. Una de las características que debe de tener un código para que este sea un código con un buen diseño, es su aspecto visual.
Declarar una variable como private boolean estado_civil = false;
no se puede decir que este mal, porque esto no afecta el funcionamiento del código, pero otro programador que mire tu código detectara algo no muy usual, por ejemplo yo he encontrado "estado_civil" donde esperaba "estadoCivil".
Esta es la regla o estilo camelCase, exactamente su variación lowerCamelCase
http://es.wikipedia.org/wiki/CamelCase donde se usan palabras o frases compuestas, y donde la primera palabra se escribe en letras minúsculas y cada primera letra de las posibles siguientes palabras se escriben en mayúsculas.
Veo que has aplicado esto correctamente a los métodos de tu clase Personas, y en lo personal te recomiendo aplicarlo también a las variables de cada clase que crees.
Esto es solo un pequeño consejo, en si tu ejercicio es correcto.
(teniendo en cuenta lo del pluralismo en nombres de clases)
Saludos!