java实现中的bmi

t9aqgxwy  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(210)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
我的任务是从uml图中实现类和属性
我的代码:

public abstract class Human {

    private String name; 
    private String firstname; 
    private int  age;
    private Gender gender;
    private String adress;
    private int height;
    private int weight;

    public enum Gender {
        MALE, FEMALE
    }

    public enum BMI {
        NORMAL, UNDERWEIGHT, OVERWEIGHT
    }

        // TODO Auto-generated constructor stub

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

    private String getName() {
        return name;
    }

    private void setName(String name) {
        this.name = name;
    }

    private String getFirstname() {
        return firstname;
    }

    private void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    private int getAge() {
        return age;
    }

    private void setAge(int age) {
        this.age = age;
    }
    private Gender getGender() {
        return gender;
    }
    private void setGender(Gender gender) {
        this.gender = gender;
    }

    private String getAdress() {
        return adress;
    }

    private void setAdress(String adress) {
        this.adress = adress;
    }

    private int getHeight() {
        return height;
    }

    private void setHeight(int height) {
        this.height = height;
    }

    private int getWeight() {
        return weight;
    }

    private void setWeight(int weight) {
        this.weight = weight;
    }

}

我的另一个任务是:
bmi()的计算公式如下:体重(kg)/(身高(m))^2
在计算时,我必须注意单位。使用math.round正确地对结果进行四舍五入。我也可以在这里使用math.pow。
我的想法是:

public static long bmi(double weightInKg, double heightInMeters) {
    return Math.round(weightInKg / Math.pow(heightInMeters, 2));
}

但我的问题是这个方法的签名应该是: BMI(): double 我的是 BMI(): double double 那么如何改进我的代码呢?

kpbwa7wx

kpbwa7wx1#

在uml中,如果方法采用参数,它将被编写为 BMI(arg1, arg2) 或者也许 BMI(arg1: double, arg2: double) .
方法调用上的冒号+类型是返回类型,而不是参数(正如您所想的那样) double double )
除此之外,还有height和weight作为字段,因此方法确实需要参数(如uml所述),并且它需要返回double而不是long,并且不是静态的。

public double BMI() {
    return getWeight() / Math.pow(getHeight(), 2);
}

相关问题