繁体   English   中英

通过无效方法设置实例变量,而不是获取返回值

[英]Set Instance Variables by Void Method instead of Getting Return Values

我有一个默认的构造函数setStudent

public void setStudent (String sName, int sTest1, int sTest2, int sTest3, int sTest4, double sOverall, String sGrade) {
  name = sName;
  test1 = sTest1;
  test2 = sTest2;
  test3 = sTest3;
  test4 = sTest4;
  overallMarks = sOverall;
  grade = sGrade;
}

*以及在需要settersgetters为每个变量。

我从用户那里获得了test1 test2 test3 test4输入。


overallMarks是通过calOverall计算的:

public double calOverall(int t1, int t2, int t3, int t4) {

        double o = (((a1 / 100.0) * 20) + ((a2 / 100.0) * 20) + ((p / 100.0) * 10) + ((e / 100.0) * 50));

        return o;
    }

grade是通过calGrade基于overallMarks计算的:

public String calGrade(double overallMarks) {

        if (overallMarks >= 85) {
            return "A";
        } else if (o >= 70) {
            return "B";
        } else if (o >= 60) {
            return "C";
        } else if (o >= 50) {
            return "D";
        } else {
            return "F";
        }
    }

获取所有输入后创建学生对象的main方法是:

*当前使用所有返回值的函数

overall = studentList[studentIndex].calOverall(test1, test2, test3, test4);

grade= studentList[studentIndex].calGrade(overall);

studentList[studentIndex].setStudent(name, test1, test2, test3, test4, overall, grade);

但是,我意识到我的项目要求我通过设置适当实例变量的无效方法来计算总体分数和等级。


我可以知道如何将overallgrade计算设置为无效方法吗?

也许不返回值,而是将其保存在您的overallMarks变量中。

calOverall是一种无效的方法来计算总体并保存

public void calOverall(int t1, int t2, int t3, int t4) {
    overallMarks = (((a1 / 100.0) * 20) + ((a2 / 100.0) * 20) + ((p / 100.0) * 10) + ((e / 100.0) * 50));
}

然后使用您的getter方法使用该值

public double getOverallMarks() {
    return overallMarks;
}

在您的main方法中,您调用

studentList[studentIndex].calOverall(test1, test2, test3, test4);

然后获取值:

double overall = studentList[studentIndex].getOverallMarks();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM