package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class TestSet { public List<Course> coursesToSelect; private Scanner console; public TestSet(){ this.coursesToSelect=new ArrayList<Course>(); console=new Scanner(System.in); } public void testAdd(){ /* * 创建一个实例对象,并通过调用add方法添加到备选课程中 */ Course cr1=new Course("1","数据结构"); coursesToSelect.add(cr1);//添加课程1 Course temp=(Course) coursesToSelect.get(0); System.out.println("插了一门课程:"+temp.id+":"+temp.name); Course cr2=new Course("2","C语言"); coursesToSelect.add(1, cr2);//添加课程2 Course temp2=(Course)coursesToSelect.get(1);//取出第一个课程 System.out.println("插入了一门课程:"+cr2.id+":"+cr2.name);//输出第一个课程 Course[] course={new Course("3","高等数学"),new Course("4","射雕英雄传")}; coursesToSelect.addAll(Arrays.asList(course)); Course temp3=(Course) coursesToSelect.get(2); Course temp4=(Course) coursesToSelect.get(3); System.out.println("插入了两门课程:"+temp3.id+":"+temp3.name+";"+ temp4.id+":"+temp4.name); } public void testForeach(){ System.out.println("通过foreach方法遍历List:"); for(Object obj:coursesToSelect){ Course cr=(Course)obj; System.out.println(cr.id+":"+cr.name); } } /* * 测试List的contains方法 */ public void testListContains(){ Course course=coursesToSelect.get(0); System.out.println("取得课程:"+course.name); System.out.println("是否包含课程"+course.name+","+coursesToSelect.contains(course)); //提示用户输入想要查询的课程 System.out.println("请输入课程名称:"); String name=console.next(); Course course2=new Course();//调用无参构造器 course2.name=name; System.out.println("取得课程:"+course2.name); System.out.println("是否包含课程"+course2.name+","+coursesToSelect.contains(course2)); } public void createStudentAndSelectCourses(){ Student student=new Student("1", "小冒"); System.out.println("欢迎"+student.name+"选课!"); for(int i=0;i<3;i++){ System.out.println("请输入想选的课程id:"); Scanner input=new Scanner(System.in); String courseID=input.next();//注意类型!!!, for(Course course:coursesToSelect){ if(course.id.equals(courseID)){//前后类型相同,否则为否,课程添加不进去!!! student.courses.add(course); } } } } /* * 测试Set的contains方法 */ public void testSetContains(){ System.out.println("请输入学生已选的课程名称:"); String name=console.next(); Course course2=new Course();//调用无参构造器 course2.name=name; System.out.println("取得课程:"+course2.name); System.out.println("是否包含课程"+course2.name+","+student.courses.contains(course2)); } public static void main(String[] args){ TestSet ts=new TestSet(); ts.testAdd(); // ts.testListContains(); ts.testForeach(); // Student student=new Student("1", "小冒"); // System.out.println("欢迎"+student.name+"选课!"); // // // for(int i=0;i<3;i++){ // System.out.println("请输入想选的课程id:"); // Scanner input=new Scanner(System.in); // String courseID=input.next();//注意类型!!!, // for(Course course:ts.coursesToSelect){ // if(course.id.equals(courseID)){//前后类型相同,否则为否,课程添加不进去!!! // student.courses.add(course); // } // } // } // ts.testForEachForSet(student); // } public void testForEachForSet(Student student){ System.out.println("共选择了"+student.courses.size()+"门课程!"); for(Course course:student.courses){ System.out.println("选择了课程:"+course.id+":"+course.name); } } /* * 遍历学生的所有课程 */ }
错误截图:
你创建的62行的变量是局部变量,作用域就在你创建的那个函数范围内,86行属于另外一个函数的作用域了。