我想確定一個數組的最大標記,其中包含學生的教室名稱和他們的標記。要做到這一點,我有一個像Person
這樣的超類,它包含getName()
,Max()
和print()
抽象方法,不應該改變。請幫助我從這個超類繼承
我有一個名爲Student
的子類,它應該從Person
超類擴展而來。這個小類應該保存學生的信息,並獲得教室的最大標記,然後打印出來。主要的班級名稱是Points
。我使用了一個散列表來存儲標記的值。我怎樣才能在Max()
方法中使用這個值,以及如何使用Print()
方法來顯示最大分數和學生姓名。謝謝。
這是我寫的。
的Person
超:
public abstract class Person {
private String name;
Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public abstract void Max();
public abstract void Print();
}
的Student
子類:
import java.util.*;
public class Student extends Person {
Map<String, Integer> scores = new HashMap<>();
Student(String name) {
super(name);
String[] bits = name.trim().split(" ");
for (int i = 0; i < bits.length; i++) {
int Marks = Integer.parseInt(bits[1]);
scores.put(bits[0], Marks);
}
}
@Override
public void Max() {
}
@Override
public void Print() {
}
}
的Points
主類:
public class Points {
public static void main(String[] args) {
String[] Marks = new String[] { "Student1 12",
"Student2 90",
"Student3 45",
"Student4 76",
"Student5 58", };
for (int i = 0; i < Marks.length; i++) {
Student std = new Student(Marks[i]);
std.getName();
std.Max();
std.Print();
}
}
}
據說你應該使用hashmap來做到這一點。我只是不知道如何重寫'Print()'和'Max()'方法並調用它們。我是超級新手。 – user3637733
我想如果代碼中有一個必須使用'HashMap'的地方,它應該只是'Points'類,而不是'Marks'數組。 您應該在主類中實現'Max()'和'Print()'方法。然而,如果你爲你的程序製作了一個驅動程序類,那將是最好的。 事實上,我在程序中看不到任何繼承的需要。你可以讓「Student」這個類繼續,然後把所有的記錄保存在一個驅動對象中。有更好的例子使用繼承: 例如,看一些RPG遊戲。你會立即認識到繼承的用途。 –