创建测试类,完成以下操作: a.创建3个Student的对象,2个Teacher对象 b.创建一个List和一个Set c.将a中创建的三个5个对象加入到List中 d.将a中创建的三个5个对象加入到Set中 e.编写一个static方法,可以对b中中创始的集合进行遍历,将集合中每个元素读出来转型为Person对象,并调用eat()方法 f.尝试删除List和Set中的元素,并在删除前后都调用e中编写的方法对List,Set进行遍历. g.创建一个Map,并将a中创建的三个学生对象,加入到Map中(以SNo为Key) h.编写一个static 方法,实现对g中创建Map进行遍历,并调用study()方法
时间: 2024-04-09 18:28:26 浏览: 76
以下是创建测试类并完成上述操作的代码:
```java
import java.util.*;
public class TestClass {
public static void main(String[] args) {
// 创建3个Student对象和2个Teacher对象
Student student1 = new Student("S001", "John");
Student student2 = new Student("S002", "Alice");
Student student3 = new Student("S003", "Bob");
Teacher teacher1 = new Teacher("T001", "Amy");
Teacher teacher2 = new Teacher("T002", "David");
// 创建一个List和一个Set
List<Person> personList = new ArrayList<>();
Set<Person> personSet = new HashSet<>();
// 将创建的对象加入到List和Set中
personList.add(student1);
personList.add(student2);
personList.add(student3);
personList.add(teacher1);
personList.add(teacher2);
personSet.add(student1);
personSet.add(student2);
personSet.add(student3);
personSet.add(teacher1);
personSet.add(teacher2);
// 遍历List和Set并调用eat()方法
traverseAndEat(personList);
traverseAndEat(personSet);
// 删除List和Set中的元素,并进行遍历
personList.remove(student1);
personSet.remove(student1);
traverseAndEat(personList);
traverseAndEat(personSet);
// 创建一个Map并将学生对象加入到Map中(以SNo为Key)
Map<String, Person> personMap = new HashMap<>();
personMap.put(student1.getSNo(), student1);
personMap.put(student2.getSNo(), student2);
personMap.put(student3.getSNo(), student3);
// 遍历Map并调用study()方法
traverseAndStudy(personMap);
}
// 遍历集合并调用eat()方法
public static void traverseAndEat(Collection<Person> collection) {
for (Person person : collection) {
person.eat();
}
}
// 遍历Map并调用study()方法
public static void traverseAndStudy(Map<String, Person> map) {
for (Person person : map.values()) {
person.study();
}
}
}
class Person {
private String id;
private String name;
public Person(String id, String name) {
this.id = id;
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
class Student extends Person {
private String sNo;
public Student(String sNo, String name) {
super(sNo, name);
this.sNo = sNo;
}
public void study() {
System.out.println(getName() + " is studying.");
}
public String getSNo() {
return sNo;
}
}
class Teacher extends Person {
private String tNo;
public Teacher(String tNo, String name) {
super(tNo, name);
this.tNo = tNo;
}
public void teach() {
System.out.println(getName() + " is teaching.");
}
public String getTNo() {
return tNo;
}
}
```
请注意,上述代码中的 `Person` 类是所有对象的父类,包括 `Student` 和 `Teacher`。这样可以方便地将它们存储在同一个集合中,而且在遍历集合时可以将元素转换为 `Person` 类型并调用 `eat()` 方法。
阅读全文