使用foreach循环和另一个类中的方法(Java)

使用foreach循环和另一个类中的方法(Java),java,class,arraylist,methods,foreach,Java,Class,Arraylist,Methods,Foreach,我有一个程序,它创建一对对象并将每个对象添加到ArrayList,然后在ArrayList中循环每个对象,并使用项目中另一个类的getter来显示每个对象的信息。我无法让foreach循环中的对象使用其他类中的任何方法。这是我的主要观点,包括底部的故障循环: import java.util.ArrayList; public class ITECCourseManager { public static void main(String[] args) { Arr

我有一个程序,它创建一对对象并将每个对象添加到ArrayList,然后在ArrayList中循环每个对象,并使用项目中另一个类的getter来显示每个对象的信息。我无法让foreach循环中的对象使用其他类中的任何方法。这是我的主要观点,包括底部的故障循环:

import java.util.ArrayList;

public class ITECCourseManager {

    public static void main(String[] args) {

        ArrayList ITECCourse = new ArrayList();

        ITECCourse infotech = new ITECCourse("Info Tech Concepts", 1100, 5, "T3050");
        infotech.addStudent("Max");
        infotech.addStudent("Nancy");
        infotech.addStudent("Orson");
        ITECCourse.add(infotech);

        ITECCourse java = new ITECCourse("Java Programming", 2545, 3, "T3010");
        java.addStudent("Alyssa");
        java.addStudent("Hillary");
        ITECCourse.add(java);

        for (Object course : ITECCourse) {
            System.out.println("Name: " + course.getName());
        }
    }
}
这是我项目中的另一个类,其中包含我需要使用的方法:

public class ITECCourse {

    public String name;
    public int code;
    public ArrayList<String> students;
    public int maxStudents;
    public String room;

    ITECCourse(String courseName, int courseCode, int courseMaxStudents, String roomNum) {

        name = courseName;
        code = courseCode;
        maxStudents = courseMaxStudents;
        students = new ArrayList<String>();
        room = roomNum;
    }

    public String getName() {
        return name;
    }
公共类ITECCourse{
公共字符串名称;
公共整数码;
公立学校的学生;
公立学校学生;
公共弦乐室;
ITECCourse(字符串courseName、int courseCode、int courseMaxStudents、字符串roomNum){
name=courseName;
代码=课程代码;
maxStudents=courseMaxStudents;
学生=新数组列表();
room=roomNum;
}
公共字符串getName(){
返回名称;
}
如果我用java.getName()替换course.getName(),代码就可以工作了。我不明白为什么不能在ArrayList中使用foreach循环来为每个对象使用getter,而我可以从代码中的同一位置调用对象并直接使用该方法


编辑:谢谢你的回答,简单的错误只需要做两个/三个更改:在开始时声明
ArrayList
,在
for
中更改
Object
,循环到
ITECCourse
,当然,将我的ArrayList从
ITECCourse
更改为
ITECCourseList
,这样就不会与我的ITECCo混淆课程类。

调用
课程.getName()
无效,因为您在循环中将
课程
定义为
对象
,而
对象
没有方法
getName()
。如果将类型参数添加到
ArrayList
声明中,例如
ArrayList
,则可以迭代
iTeCourse
实例列表,而不是
对象


另一方面,将变量命名为
ITECCourse
只会导致混淆,因为它与类相同。最好将变量命名为
itecCourseList
调用
course.getName()
不起作用,因为您在循环中将
课程
定义为
对象
,并且
对象
没有方法
getName()
。如果将类型参数添加到
ArrayList
声明中,例如
ArrayList
,则可以迭代
iTeCourse
实例列表,而不是
对象


另一方面,将变量命名为
ITECCourse
只会导致混淆,因为它与您的类相同。最好将变量命名为
itecCourseList

将变量命名为与类相同的名称,这是一个非常糟糕的主意。请考虑一下它。
对象是否有方法d
getName()
?换句话说,由于Java是静态类型的,因此只有当对象被声明为具有该方法的类型时,才能对该对象调用方法。将变量命名为与类相同的名称是一个非常糟糕的主意。请考虑一下它。
对象
是否具有方法
getName()
?换句话说,由于Java是静态类型的,因此只有当对象被声明为具有该方法的类型时,才能调用该对象上的方法。