【问题标题】:Calling an object from different classes从不同的类调用对象
【发布时间】:2013-11-22 18:36:53
【问题描述】:

我有一个主类来运行一个 BMI 计算器类,该类计算 BMI 信息(体重指数),其中包含姓名、年龄、性别、身高和体重等字段。 还有一个 WaistToHip 计算器类,可以通过字段计算腰臀比 腰部和臀部。 但是,当我想创建一个 BodyFat 计算器我需要两个班级的身高和腰围。 我应该如何在我的体脂计算器课程中为我的公式调用这些?

public class body_fat_calculation {
    private double neck;
    private double CBF;
    waist_to_hip_ratio waist;
    bmiCalculator height;

    public body_fat_calculation(double neck) {
        super();
        this.neck = neck;
    }

    public double getCBF() {
        return CBF;
    }

    public void setCBF(double cBF) {
        CBF = cBF;
    }

    public double getNeck() {
        return neck;
    }

    public void setNeck(double neck) {
        this.neck = neck;
    }

    public double Round(double Rval, int Rpl){
        double p = Math.pow(10, Rpl);
        Rval=Rval*p;
        double tmp = Math.round(Rval);
        return tmp/p;
    }

    public void calculateWTHR(){
        CBF= Round((495/(1.0324 - 0.19077 * Math.log10((waist)-(neck)) + 0.15456 * Math.log10(height)) - 450),2);
    }
}

【问题讨论】:

  • 向我们展示你在代码中得到了什么,然后我们可以从那里开始
  • @Prateek 嗨,够了吗?
  • 第一件事。为什么你有constructor 设置neck 然后setNeck 再次设置脖子?而且您的body_fat_calculation 没有扩展任何基类,那为什么super 在那里?
  • 你为什么打电话给super()body_fat_calculation 应该是另一个的子类吗?您应该显示所有代码。

标签: java class


【解决方案1】:

你为什么不做这样的事情?如果您注意到我在 BodyFatCalculator 类中添加了两个参数 - 腰围和身高。

 public class Main {
    public static void main(string[] args){

    // I assume you will want to use a scanner to get user input to set these variables dynamically
    // for the sake of the example, I have set them myself.
    double height = 1.82; // meters
    double weight = 170.0;
    double waist = 35.0;
    double hip = 40.0;
    double neck = 7.1;
    String name = "Dave";
    String sex = "M";
    int age = 20;

    // create new BMI Calculator to figure out body mass index
    BMICalculator bmiCalc = new BMICalculator(name, age, sex, height, weight);
    double bmi = bmiCalc.calculateBmi(); // calculate body mass index

    WaistToHipCalculator waistHipCalc = new WaistToHipCalculator(waist, hip);
    double whr = waistHipCalc.calculateWhr(); // calculate waist to hip ratio

    BodyFatCalculator bfCalc = new BodyFatCalculator(neck, height, waist);
    double bf = bfCalc.calculateBf(); // calculate body fat

    // print results
  }
}

【讨论】:

  • 非常高兴您能将主要内容包括在内。我将上传其余的代码。这样会更容易。
【解决方案2】:

类是更多的名词。动词应该是一种方法。对于一个名为 BodyFatCalculation 的类,我认为您正在努力使用很多类。只需使用带有 calculateBodyMassIndex 和 calculateBodyFat (动词)作为方法的 Body(名词)类。您可以创建一个具有高度和腰围的Dimensions 类(根据需要使用getter 和setter)并将其实例保留在Body 类中,但这在这里有点过头了。

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多