为加深分拣存储概念,熟练代码,写了一个学生选课demo
思路和前面基本一致,一共设计了四个类,Course类,Student类,分别封装了关于课程和学生的数据,StuCourse类,属性有学生姓名和List〈Course〉,以及核心代码类Mytest。
有以下几点需要注意:
1. StuCourse类中需要在构造方法中初始化List,无论有没有形参,不然会出现空指针异常
2. StuCourse类提供一个只带name的构造方法
3. map是唯一的,不需要每一次选课都新new一个map,所以要把它放在方法外面,map就涵盖了所有的学生以及学生对应选择的所有课程,不过我们这里运行都是只有一个学生
4. 遍历list的时候可以用加强for语句,也可以有迭代器,我都是用的foreach
5. last but not least ,一定要搞清楚这里的StuCourse类存在的必要,不直接把List〈Course〉设置为Student类的属性是为了方便进行分拣存储,为Map添加泛型
代码运行:
根据提示创建一个学生对象,然后进行选课,每次选择一个,可以继续选择,或者选择退出,如图
源代码:
/**
* 课程类
* @author wwyDEPP
*
*/
public class Course {
private String name;
private String teacher;
public Course() {
// TODO Auto-generated constructor stub
}
public Course(String name, String teacher) {
super();
this.name = name;
this.teacher = teacher;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
}
import java.util.ArrayList;
import java.util.List;