public class TestPolymorphism { public static void main(String[] args) { // 声明Student类的数组 Student[] students = new Student[5]; // 生成五个对象存入数组 students[0] = new Student(80, "张三", 90, 99,100); students[1] = new Student(70, "李四", 90, 80, 80); students[2] = new Student(77, "王五", 70, 90, 100); students[3] = new StudentXW("小王", 85, null, 90, 99, 80); students[4] = new StudentBZ("小李", 95, null, 80, 90, 100); // 对数组中的每个元素都调用testscore()方法进行测试 for (int i = 0; i < students.length; i++) { students[i].testScore(); } } }怎么让他输出结果呢
时间: 2024-01-18 12:03:46 浏览: 47
这段代码的输出结果应该是每个学生的姓名以及总分和平均分。你可以在 `Student` 类的 `testScore()` 方法中添加输出语句来打印结果。
例如,在 `Student` 类的 `testScore()` 方法中,你可以添加以下代码来输出学生的姓名、总分和平均分:
```
System.out.println("姓名:" + name);
System.out.println("总分:" + getTotalScore());
System.out.println("平均分:" + getAverageScore());
```
注意,如果你想打印学生特有的属性(如 `StudentXW` 类的 `xwScore` 属性或 `StudentBZ` 类的 `bzScore` 属性),你需要将数组元素强制转换为相应的子类。例如,在循环中,你可以添加以下代码来打印 `StudentXW` 类型学生的 `xwScore` 属性:
```
if (students[i] instanceof StudentXW) {
StudentXW studentXW = (StudentXW) students[i];
System.out.println("小王的小学科目成绩:" + studentXW.getXwScore());
}
```
同样的,你也可以添加类似的代码来打印 `StudentBZ` 类型学生的 `bzScore` 属性。
相关问题
定义一个学生类Student,成员变量包括:姓名,生日,学号,学校;重写方法toString,equals,hashCode;实现接口Comparable,按照学号大小进行比较;定义构造方法。 代码形式如下: public class Main{ public static void main(String[] args) { Scanner in=new Scanner(System.in); int num=in.nextInt(); Student[
public class Student implements Comparable<Student>{
private String name;
private Date birthday;
private String id;
private String school;
public Student(String name, Date birthday, String id, String school) {
this.name = name;
this.birthday = birthday;
this.id = id;
this.school = school;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", birthday=" + birthday +
", id='" + id + '\'' +
", school='" + school + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Student)) return false;
Student student = (Student) o;
return getId().equals(student.getId());
}
@Override
public int hashCode() {
return Objects.hash(getId());
}
@Override
public int compareTo(Student o) {
return this.getId().compareTo(o.getId());
}
public String getName() {
return name;
}
public Date getBirthday() {
return birthday;
}
public String getId() {
return id;
}
public String getSchool() {
return school;
}
}
//在Main类中使用
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Student[] students = new Student[num];
for (int i = 0; i < num; i++) {
String name = in.next();
Date birthday = new Date(in.next());
String id = in.next();
String school = in.next();
students[i] = new Student(name, birthday, id, school);
}
Arrays.sort(students);
for (Student student : students) {
System.out.println(student.toString());
}
}
}
用JavaSort the Student list by ascending order of student namesThe following is an example illustrating formatting output. You will need it for task 2 and 3. public class Main { public static void main(String[] args) { String string1 = "Hello"; String string2 = "World"; String string3 = "Java"; System.out.println(String.format("%-10s %-10s %-10s", string1, string2, string3)); } }
Sure, here's an example Java code that sorts a list of students by ascending order of their names using the `Collections.sort()` method and formats the output using `String.format()`:
```java
import java.util.ArrayList;
import java.util.Collections;
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int compareTo(Student other) {
return this.getName().compareTo(other.getName());
}
public String toString() {
return String.format("%-10s %-10d", this.getName(), this.getAge());
}
}
public class Main {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("John", 20));
students.add(new Student("Alice", 19));
students.add(new Student("Bob", 21));
students.add(new Student("Charlie", 18));
System.out.println("Before sorting:");
for (Student student : students) {
System.out.println(student);
}
Collections.sort(students);
System.out.println("After sorting:");
for (Student student : students) {
System.out.println(student);
}
}
}
```
In this example, the `Student` class implements the `Comparable` interface and overrides the `compareTo()` method to compare students based on their names. The `toString()` method formats the output using `String.format()` with the `%10s` and `%10d` format specifiers for the name and age fields, respectively. In the `Main` class, we create a list of students, print the list before sorting, sort the list using `Collections.sort()`, and print the list after sorting. The output will be:
```
Before sorting:
John 20
Alice 19
Bob 21
Charlie 18
After sorting:
Alice 19
Bob 21
Charlie 18
John 20
```
I hope this helps! Let me know if you have any other questions.