作为我课堂作业的一部分,我必须手动将教科书中的代码复制到 jgrasp 中。
刚刚抄完最新的作业,我检查了一下我抄的是否完美,代码在下面。但是当我尝试编译它时,出现以下错误。
FinalExam.java:30: error: cannot find symbol
setScore(numericScore);
^
symbol: method setScore(double)
location: class FinalExam
1 error
我在GradedActivity类中写了setScore方法所以FinalExam类应该继承了它,我唯一能想到的解释错误的想法是它出于某种原因没有继承?有没有人对它为什么不起作用有想法或建议?
public class GradedActivity
{
private double score;
public GradedActivity()
{
score = 0.0;
}
private void setScore(double s)
{
score = s;
}
public double getScore()
{
return score;
}
public char getGrade()
{
char letterGrade;
if (score >= 90)
{
letterGrade = 'A';
}
else if (score >= 80)
{
letterGrade = 'B';
}
else if (score >= 70)
{
letterGrade = 'C';
}
else if (score >= 60)
{
letterGrade = 'D';
}
else
{
letterGrade = 'F';
}
return letterGrade;
}
}
/**
This class determines the grade for a final exam.
*/
public class FinalExam extends GradedActivity
{
private int numQuestions; // Number of questions
private int numMissed; // Questions missed
public FinalExam(int questions, int missed)
{
double numericScore;
numQuestions = questions;
numMissed = missed;
numericScore = 100.0 - (missed * getPointsEach());
// Call the inherited setScore method to
// set the numeric score.
setScore(numericScore);
}
public int getNumQuestions()
{
return numQuestions;
}
public int getNumMissed()
{
return numMissed;
}
public double getPointsEach()
{
return 100.0 / numQuestions;
}
}
private
函数是 not 继承的。变化
private void setScore(double s)
到
protected void setScore(double s)