class PersonalData{ final String DEFAULT_SEX = "MALE"; final int DEFAULT_AGE = 17; final double DEFAULT_WEIGHT = 70.0; final double DEFAULT_HEIGHT = 170; final boolean DEFAULT_IS_ATHLETE = false; String sex = DEFAULT_SEX; // 性別 MALE,FEMALE int age = DEFAULT_AGE; // 年齢 double your_weight = DEFAULT_WEIGHT; // [kg] double your_height = DEFAULT_HEIGHT; // [cm] boolean isAthlete = DEFAULT_IS_ATHLETE; // アスリートかどうか double BMI = 0; // BMI double category = 0; // 肥満指数 PersonalData(String _sex, int _age, double _weight, double _height, boolean _isAthlete) { sex = checkSex(_sex); age = checkAge(_age); your_weight = checkWeight(_weight); your_height = checkHeight(_height); isAthlete = _isAthlete; } //引数無しコンスラクタ PersonalData(){ BMI = getBMI(); category = getCategory(); } public String getSex(){ return sex; } public String setSex(String val){ sex = checkSex(val); return sex; } public int getAge(){ return age; } public double getYourWeight(){ return your_weight; } public double setYourWeight(double val){ your_weight = checkWeight(val); return your_weight; } public double getYourHeight(){ return your_height; } public double setYourHeight(double val){ your_height = checkHeight(val); return your_height; } public boolean isAthlete(){ return isAthlete; } public double getBMI(){ BMI = your_weight / ( pow((float)your_height,2) / pow(100,2) ); return BMI; } public double getCategory(){ BMI = getBMI(); if ( BMI < 18.5 ) { category = -1; } else if ( BMI < 25 ) { category = 0; } else if ( BMI < 30 ) { category = 1; } else if ( BMI < 35 ) { category = 2; } else if ( BMI < 40 ) { category = 3; } else { category = 4; } return category; } private String checkSex(String val){ if (val.equals("MALE") || val.equals("FEMALE")) { sex = val; } else { sex = "NONE"; } return sex; } private int checkAge(int val){ if ((16 <= val) & (val <= 110)){ return val; } else { return DEFAULT_AGE; } } private double checkWeight(double val){ if ((30 <= val) & (val <= 150)){ return val; } else { return DEFAULT_WEIGHT; } } private double checkHeight(double val){ if ((100 <= val) & (val <= 200)){ return val; } else { return DEFAULT_HEIGHT; } } }