这一章节还是有点绕的!
赞一个,能自己改编挺好的。我有几个疑问啊
1、选课时候第二个for循环用foreach简单点吧
2、你的CourseSelistGeneric类是什么集合类型,CourseAdd(),getCourse(),两个方法的实现部分是什么,是增加课程和显示课程吗?
3、我个人的看法啊:
其实你的和老师的差不多,省去了SetDemo实例化对象,并省去以此对象来调用执行主函数的各个功能。主函数里没有通过SetDemo调方法。我觉得这样像流水账一样。。。主函数的操作性、灵活的减少了
就是在面向对象上来说。。个人的感觉,我也是初学者,说的可能也有不对的,就是交流一下,谢谢啦
以下是我整个SetTest的代码,直接调用Course类,跟老师的写法有点不用,但可能会比较直观,因为都在main方法里实现。可以参考参考,可能会对你有点灵感的作用,如果有什么可以互相交流一下。
import java.util.List; import java.util.Scanner; /* * SetDemo是测试set接口类的一个demo * ①显示可选课程--借用CurseSelectGeneric * ②学生实例 * ③学生选择课程 * ④显示学生选择的课程 * 最佳的方法是main中运行的步骤提取出来,只在 main中调用 */ public class SetDemo { public static void main(String[] args){ CourseSelectGeneric courseList =new CourseSelectGeneric(); courseList.CourseAdd(); courseList.getCourse(); //①显示可选课程 Student student001 =new Student("0203", "Happy"); //②实例化一个学生Happy ,并具有studentCourse实例容器set Scanner input =new Scanner(System.in); System.out.println("欢迎"+student001.studentName+"选课"); System.out.println("请按照列表输入三门课程"); System.out.println("================"); for(int i=0;i<3;i++){ System.out.println("请输入第"+(i+1)+"门课程"); String scr=input.next(); //保存键盘输入的字符串内容 for(int y=0;y<courseList.courseSelect_v1.size();y++){ //遍历List容器的课程 Course tmpCr = courseList.courseSelect_v1.get(y); //获取每一个课程的ID 号 if(scr.equals(tmpCr.courseID)){ student001.studentCourse.add(tmpCr); } } } System.out.println("================"); System.out.println("你选择了如下课程:"); for(Course scr :student001.studentCourse){ //HashSet类没有get(i)method,因为set是无序排列的,只能用foreach遍历 System.out.println(scr.courseID+":"+scr.course); } } }
理清楚思路之后发现,其实集合类基本是相同的,包括方法之类的。