¿Se puede llamar a un método en el constructor? Java
Necesito invocar un método cuando se construya el objeto.
Estoy haciendo una clase Persona en donde su DNI se va a generar al crearse el objeto, por lo que tengo que llamarlo en el constructor y no se como hacerlo, o no se si se puede hacer eso:
public class Persona{ private String nombre=" "; private int edad=0; private int dni; private final char SEXO="H"; private double peso=0.0; private double altura=0.0; public Persona(){ } public Persona(String nombre , int edad , char sexo){ this.nombre=nombre; this.edad=edad; this.sexo=sexo; } public Persona(String nombre , int edad , char sexo , double peso , double altura){ this.nombre=nombre; this.edad=edad; this.dni = generarDNI(); this.sexo=sexo; this.peso=peso; this.altura=altura; } public void setNombre(String nombre){ this.nombre=nombre; } public String getNombre(){ return this.nombre; } public void setEdad(int edad){ this.edad=edad; } public double getEdad(){ return this.edad; } public double getDni(){ return this.dni; } public void setSexo(char sexo){ this.sexo=sexo; } public double getSexo(){ return this.sexo; } public void setPeso(double peso){ this.peso=peso; } public double getPeso(){ return this.peso; } public void setAltura(double altura){ this.altura=altura; } public double getAltura(){ return this.altura; } public double calcularIMC(){ double imc=0.0; imc=(peso/(Math.pow(altura,2))); if(imc<20){ return -1; } if(imc>=20 && imc<=25){ return 0; } if(imc>25){ return 1; } } public boolean esMayorDeEdad(){ if(edad>=18){ return true; }else{ return false; } return false; } public void comprobarSexo(char sexo){ if(this.sexo==sexo){ }else{ this.sexo='H'; } } public String toString(){ String frase=" "; return frase= "Nombre: "+getNombre()+"\n"+"Edad: "+getEdad()+"\n"+"D.N.I: "+getDni()+"\n"+"Sexo: "+getSexo()+"\n"+"Peso: "+"\n"+"Altura: "+getAltura()+""; } private void generarDNI(){ this.dni= (int)(Math.random()*123456789)+1; } }
1 Respuesta
Respuesta de Francisco Cardo
1