其他方法需要放在main方法之前,不然运行时会报错。看视频都不用,是版本问题吗?

来源:4-11 学生选课---通过 Set 集合管理课程

慕村5478413

2016-09-14 17:27

有一个问题弱弱的问下...在视频教程中,老师的testForEachForSet方法是写在main方法后面,可以运行。 为什么我就不行了。会报错,提示:testForEachForSet方法未定义。放在main方法前面就可以,难道是版本的问题??http://img.mukewang.com/57d917f20001ab7205940260.jpg

写回答 关注

2回答

  • 你已走远
    2016-09-18 16:43:44
    package com.imooc.collection;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Scanner;
    
    public class TestSet {
    
    	public List<Course> courseToSelect;
    	
    	public TestSet()
    	{
    		courseToSelect = new ArrayList<Course>();
    	}
    	
    	public void addTest()
    	{
    		Course cr1 = new Course("1","数据结构");
    		courseToSelect.add(cr1);
    		
    //		Course temp1=(Course) courseToSelect.get(0);
    //		System.out.println("添加的课程:"+temp1.getId()+":"+temp1.getName());
    		
    		Course cr2 = new Course("2","C语言");
    		courseToSelect.add(0, cr2);
    		
    		Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")};
    		courseToSelect.addAll(Arrays.asList(course));
    		
    		Course[] course2 = {new Course("5","高等数学"),new Course("6","大学英语")};
    		courseToSelect.addAll(1,Arrays.asList(course2));
    		
    		
    	}
    	public void testForeach()
    	{
    		System.out.println("有如下课程可选:(Foreach循环遍历)");
    		for(Object cou:courseToSelect)
    		{
    			Course co =(Course)cou;
    			System.out.println(co.getId()+" "+co.getName());
    		}
    	}
    	
    	public void testForEachForSet(Student student)
    	{
    		for(Course cou:student.getCourse())
    		{
    			System.out.println("小明选择的课程是:"+cou.getId()+" "+cou.getName());
    		}
    	}
    
    	public static void main(String[] args) {
    		TestSet ts = new TestSet();
    		ts.addTest();
    		ts.testForeach();
    		Student student = new Student("1","小明");
    		System.out.println("欢迎"+student.getName()+"同学选课!");
    		Scanner input = new Scanner(System.in);
    		for(int i=0;i<3;i++)
    		{
    			System.out.println("请输入课程ID:");
    			String id = input.next();
    			
    			//利用foreach循环遍历
    //			for(Course cour:ts.courseToSelect)
    //			{
    //				if(id.equals(cour.getId()))
    //				{
    //					student.getCourse().add(cour);
    //				}
    //			}
    			
    			//利用迭代器循环遍历
    			Iterator it = ts.courseToSelect.iterator();
    			while(it.hasNext())
    			{
    				Course cour = (Course) it.next();
    				if(id.equals(cour.getId()))
    					{
    						student.getCourse().add(cour);
    					}
    			}
    		}
    		
    		ts.testForEachForSet(student);
    		
    	}
    	
    //	public void testForEachForSet(Student student)
    //	{
    //		for(Course cou:student.getCourse())
    //		{
    //			System.out.println("小明选择的课程是:"+cou.getId()+" "+cou.getName());
    //		}
    //	}
    
    	
    }

    我的代码放前面和后面都可以呀

  • 慕村5478413
    2016-09-14 17:29:21

    没人遇到过吗~

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409771 学习 · 4341 问题

查看课程

相似问题