public class IndiceMasaCorporal { private static final double factorPesoLb = 703.069579639159;
private String clasificacion;
private double peso; // libras
private double estatura; // pulgadas
private double imc;
private boolean existeIMC;
public IndiceMasaCorporal() { this.clasificacion = "Indefinida";
}
public void setPeso(double peso) { this.peso = peso;
existeIMC = false;
}
public void setEstatura(double estatura) { this.estatura = estatura;
existeIMC = false;
}
public double getIndice() { if (!existeIMC) { calcularIndice();
}
return imc;
}
public String getClasificacion() { if (!existeIMC) { calcularIndice();
}
clasificar();
return clasificacion;
}
private void calcularIndice() { imc = peso * factorPesoLb / Math.pow(estatura, 2.0);
existeIMC = true;
}
private void clasificar() { if (imc < 16.0) { clasificacion = "Delgadez Severa";
} else if (imc >= 16.0 && imc <= 16.99) { clasificacion = "Delgadez Moderada";
} else if (imc >= 17.00 && imc <= 18.49) { clasificacion = "Delgadez Aceptable";
} else if (imc >= 18.50 && imc <= 24.99) { clasificacion = "Peso Normal";
} else if (imc >= 25.00 && imc <= 29.99) { clasificacion = "Sobrepeso";
} else if (imc >= 30.0 && imc <= 34.99) { clasificacion = "Obeso Tipo I";
} else if (imc >= 35.0 && imc <= 39.99) { clasificacion = "Obeso Tipo II";
} else if (imc >= 40.0) { clasificacion = "Obeso Tipo III";
}
}
}