如果您需要,可以从此链接中提取完整代码的存储库: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);
}
答案 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();
该死的,谢谢大家对我的支持。