城院 面向对象程序设计 集合框架与泛型实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浙江大学城市学院实验报告
课程名称面向对象程序设计
实验项目名称集合框架与泛型
学生姓名专业班级学号
一. 实验目的和要求
1. 了解Java集合框架的接口和实现类
2. 理解泛型类、泛型接口、泛型方法的特点
3. 掌握List
4. 了解Set
5. 了解Map
二. 实验内容
1. 分析Java集合框架的接口和实现类的组成
2. 分析泛型类、泛型接口、泛型方法的特点
3. 编程实现:设计学生管理类StudentManager(用List集合管理学生对象)
4. 选作-编程实现:设计学生管理类StudentManager(用Set集合管理学生对象)
5. 选作-编程实现:设计学生管理类StudentManager(用Map管理学生对象)
三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果)
1. 分析Java集合框架的接口和实现类的组成
请查阅书籍和Java帮助文档,说明Java集合框架的接口组成以及它们的继承关系,并针对每个接口给出具体的实现类。
答:collection
Map
Iterator
Listiterator
2. 分析泛型类、泛型接口、泛型方法的特点
请查阅书籍和Java帮助文档,举例说明泛型类、泛型接口、泛型方法的特点。
答:泛型接口:
interface testGenerics
泛型类:
public class GenericsFoo
public GenericsFoo(T x) { this.x = x; }
public T getX() { return x; }
public void setX(T x) { this.x = x; } }
使用
当然T仅仅是个名字,这个名字可以自行定义。
泛型方法:
是否拥有泛型方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。如:
public class ExampleA {
public
System.out.println(x.getClass().getName()); } }
使用泛型方法时,不必指明参数类型,编译器会自己找出具体的类型。泛型方法除了定义不同,调用就像普通方法一样。
3. 编程实现:设计学生管理类StudentManager(用List集合管理学生对象)。
StudentManager类的功能包括添加学生、查询学生、删除学生、统计学生成绩等。需要设计表示学生对象的Student类,并用LinkedList或ArrayList集合来管理可被数量的学生对象。另外还需要设计测试类Test来验证StudentManager的功能。
import java.util.*;
class StudentManager{
private String id ,name;
private int score;
public StudentManager(String id,String name,int score){
this.id=id;=name;
this.score=score;
}
public String toString(){
return "\nid=" +id+" name=" +name+" score=" +score;
}
public int getscore(){
return score;
}
}
class Student extends StudentManager{
public Student(String id, String name, int score) {
super(id, name, score);
// TODO Auto-generated constructor stub }
}
public class example {
public static void main(String[] args){
Student student1=new Student("001","张三",83);
Student student2=new Student("002","李四",64);
Student student3=new Student("003","王五",95);
Student student4=new Student("004","赵六",76);
Student student5=new Student("005","钱七",77);
List
list1.add(student1);
list1.add(student2);
list1.add(student3);
list1.add(student4);
list1.add(student5);
printList(list1);
Scanner scanner=new Scanner(System.in);
System.out.print("请输入要添加学生的学号:\n");
String a=scanner.nextLine();
System.out.print("请输入要添加学生的姓名:\n");
String b=scanner.nextLine();
System.out.print("请输入要添加学生的分数:\n");
int c=scanner.nextInt();
Student student6=new Student(a,b,c);
list1.add(student6);
printList(list1);
System.out.print("删除id为002的学生:\n");
for(int i=0;i { if(list1.get(i).equals(student2)) list1.remove(i); } printList(list1); System.out.print("查询id为003的学生:\n"); for(int i=0;i { if(list1.get(i).equals(student3))