Java数组继承



我似乎在理解如何处理一个特定的问题上有问题。

我需要写一个类来保存一个包含四个元素的数组。每个元素都有一个不同的方法。

例如,第一个元素是从另一个类继承信息,最初输入一个数字,然后返回该数字以及与该数字对应的字符(字母等级)。这两项都需要存储在该元素中。

下面是我的类,它接受输入(分数)并返回字母grade

package runit;
public class GradedActivity{
    public int score;
    public GradedActivity(int score)
    {
        this.score = score;
    }
    public void setScore(int 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;
    }
}

下面是我的主要类,目前只用于获取每个元素所需的单独分数

package runit;
import java.util.Scanner;
public class RunIt {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int labScore;
        int essayScore;
        int finalExamScore;

        System.out.print("Enter the students score for the lab: ");
        labScore = keyboard.nextInt();
        System.out.print("Enter the students score for the essay: ");      
        essayScore = keyboard.nextInt();        
        System.out.print("Enter the students score for the final exam: ");
        finalExamScore = keyboard.nextInt();
        GradedActivity a = new GradedActivity(labScore);
        GradedActivity b = new GradedActivity(essayScore);   

        //below was used to make sure the GradedActivity class was working
        System.out.println(a.getScore() + " " + a.getGrade()); 
        System.out.println(b.getScore() + " " + b.getGrade());
    }
}

下一部分是我似乎有问题的地方。我不确定我是否想得太多了,或者可能把它的一部分与JavaScript混淆了。基本上,每个元素方法都必须保存输入的分数和相应的字母等级。虽然我知道我可以很容易地在我的主类中创建单独的实例,比如

GradedActivity a = new GradedActivity(labScore);

另一个类中的整个数组让我困惑。

下面是数组

的类
public class CourseGrades extends GradedActivity{
    //I initially had private int[] grades, though I wasn't seeming to make any progress
    enum grades {
        lab,
        essay,
        finalExam,   
    };
    private int lab;
    private int essay;
    private int finalExam;
    public CourseGrades(int score, int lab, int essay, int finalExam) {
        super(score);
        this.lab = lab;
        this.essay = essay;
        this.finalExam = finalExam;
    }

    public void setLab(int score) {
        this.lab = score;
    }
    public void setEssay(int score) {
        this.essay = score;
    }
    public void setFinalExam(int finalExam) {
        this.finalExam = finalExam;
    }
    //lastly, I need to be able to print out both the numeric and letter grade for each element
    public String toString() {
        return "Lab grade: " + lab + " Essay grade: " + essay + " Final Exam grade: " + finalExam;
    }
}

我也尝试过使用CourseGrades c = new CourseGrades(labScore, essayScore, finalExam);,但它需要第4个int(用于超级(分数))。

我很感激你可能提供的任何帮助。我绞尽脑汁想弄明白这件事。谢谢你。

创建一个GradedActivity类的数组。

private GradedActivity[] grades;

像数组一样初始化它,

grades = new GradedActivity[4];

你像这样添加每个元素,假设你可以在for循环中设置你的分数。你也可以用数字0、1、2、3来表示你的4个等级。

grades[i] = new GradedActivity(score);

你像这样引用GradedActivity方法。

char c = grades[i].getGrade()

最新更新