Clase personas con constructores

public class Persona {
 private String nombre;
 private int edad;
 
 public Persona(String nombre){
 this(nombre,18);
 }
 public Persona(String nombre,int edad){
 setNombre(nombre);
 setEdad(edad);
 }
 /**
 * @return the nombre
 */
 public String getNombre() {
 return nombre;
 }
 /**
 * Ponemos el nombre que le pasamos
 * @param nombre que tiene que ser, por supuesto, una cadena
 */
 public void setNombre(String nombre) {
 if (nombre.length()<2){
 nombre="Desconocido";
 }
 
 this.nombre = nombre;
 }
 /**
 * @return the edad
 */
 public int getEdad() {
 return edad;
 }
 /**
 * @param edad the edad to set
 */
 public void setEdad(int edad) {
 
 if(edad<18){
 edad=18;
 }
 
 this.edad = edad;
 }
 public String muestra(){
 return nombre+" tiene "+edad+" años";
 }
 public String muestra(String tipo){
 if (tipo.equals("Edad")){
 return muestra(1);
 }
 else{
 return muestra(0);
 }
 }
 public String muestra(int tipo){
 if (tipo==0){
 return "Se llama "+nombre;
 }
 else{
 return "Tiene "+edad+" años";
 }
 }
 public String toString(){
 return "Nombre: "+nombre+" | Edad:"+edad;
 }
}