如何让我的方法返回我想要的值?

时间:2016-11-24 01:00:07

标签: java inheritance interface polymorphism

如果您需要,可以从此链接中提取完整代码的存储库:https://github.com/kenkuts/javaActivity.git

我正在为此练习应用程序使用继承,多态和接口。到目前为止,我完成了作业要求我做的所需任务。我不认为我做了这个部分,正如作业要求我创建一个名为grade的GradedActivity数组,其中四个元素作为字段,并为每个GradedActivity数组存储不同的类类型。

if ( document.URL.indexOf( 'http://' ) === -1 && document.URL.indexOf( 'https://' ) === -1 ) {
    // PhoneGap application
} else {
    if (location.protocol != 'https:') {location.href = 'https:' + window.location.href.substring(window.location.protocol.length);}
}

该作业还希望我从一个接口创建3个方法,并在主类中编写和调用它。我知道我在问题的数组部分搞砸了,因为我的getAverage()方法不起作用,还有我的另外两个getLowest()和getHighest()。

public class CourseGrades implements Analyzable {

    private GradedActivity labScore;
    private PassFailExam passFailScore;
    private Essay essayScore;
    private FinalExam finalScore;
    **private GradedActivity[] grades = {labScore, passFailScore, essayScore, finalScore};**

    public CourseGrades(GradedActivity lab, PassFailExam score, Essay essay, FinalExam finalExam){

        setLab(lab);
        setPassFailExam(score);
        setEssay(essay);
        setFinalExam(finalExam);

    }

1 个答案:

答案 0 :(得分:0)

在搜索和修改一些事情后,圣牛我在问题中找出了问题。对于GradedActivity数组,我所要做的就是按每种类对象分配每个数组,如下所示:

But the LORD is in His holy temple. Let all the earth be silent before Him. Habakkuk 2:20

我所做的不是将GradedActivity数组值设置为对象类型,而是将不同的对象引用设置为自己的对象类型。因此:

public class CourseGrades implements Analyzable {

    private GradedActivity[] grades = new GradedActivity[4];

    public CourseGrades(GradedActivity lab, PassFailExam score, Essay essay, FinalExam finalExam){

        setLab(lab);
        setPassFailExam(score);
        setEssay(essay);
        setFinalExam(finalExam);

    }

    public void setLab(GradedActivity g){
        this.grades[0] = g;
    }
    public void setPassFailExam(PassFailExam g){
        this.grades[1] = g;
    }
    public void setEssay(Essay g){
        this.grades[2] = g;
    }
    public void setFinalExam(FinalExam g){
        this.grades[3] = g;
    }

修复此问题后,我的getAverage()方法开始工作。

private GradedActivity labScore;
private PassFailExam passFailScore;
private Essay essayScore;
private FinalExam finalScore;

接下来是修复我的getLowest()和getHighest()方法。我的第一个错误是我有一个超出范围的数组 public double getAverage(){ double average; double accum = 0; for(int x = 0; x < grades.length; x++){ accum += grades[x].getScore(); } average = accum/grades.length; return average; } 。修复此问题后,我决定通过获得最低和最高等级的唯一方法是声明一个空的GradedActivity对象,然后在返回带有类引用的方法之后调用方法,并将{.getScore()方法放在{{1}中因此,从主要方法:

grades[x+1].getScore();

该死的,谢谢大家对我的支持。