检查Array中的对象属性

时间:2017-09-24 03:36:22

标签: java arrays oop object arraylist

我有一个对象数组,我想检查对象中的变量是否具有特定名称。最终我喜欢为数组中的每个对象做这件事,但我只是在第一个索引上测试它。我不确定arraylist是否会更好。 (我有单独的教师/课堂/课程/教科书/名称课程)

public static void startCourse(){
    Course[] course = new Course[4];
    Scanner input = new Scanner(System.in);
    for(int i = 0;i < course.length;i++){
        System.out.println("Enter Course Number and course title: ");
        String courseNumber = input.nextLine();
        String courseTitle = input.nextLine();
        course[i] = new Course(courseNumber,courseTitle);
        //FACULTY
        System.out.println("Faculty: /nEnter First Name: ");
        String facultyfName = input.nextLine();
        System.out.println("Enter Last Name: ");
        String facultylName = input.nextLine();


        course[i].setFaculty(new Faculty(facultyfName,facultylName));//doesnt set name in constructor???

        course[i].getFaculty().getName().setfName(facultyfName);
        course[i].getFaculty().getName().setlName(facultylName);

        course[i].setTextbook(new Textbook("Intro to java","123456",59.99));
        course[i].setClassroom(new Classroom("R540",26,true));

        Student student1 = new Student("Yulissa","Lucero");
        Student student2 = new Student("Aaron","Folborg");

        Student[] students = {student1,student2};
        //input.close();
        System.out.println(course[i]);
        //System.out.println(students);
    }
    System.out.println(course[0].getFaculty().getName().equals("Ben"));
}

2 个答案:

答案 0 :(得分:0)

在设置您正在使用以下语句的学院名称时,看到您的代码时会感到困惑:

course[i].getFaculty().getName().setfName(facultyfName);
course[i].getFaculty().getName().setlName(facultylName);

认为 getName()会返回某种具有两个属性 fname lname 的对象 但是当您比较教员姓名时,您正在使用以下声明:

course[0].getFaculty().getName().equals("Ben")

如何将对象字符串进行比较,您应该使用 getfName() getlName()

答案 1 :(得分:0)

在代码的上下文中:

course[i].setFaculty(new Faculty(facultyfName,facultylName));//doesnt set name in constructor???
Course类具有Faculty faculty属性的setter并且Faculty类具有Name name字段属性的构造函数时,

应该有效:

Faculty(String fname, String lname) {
   this.name.setfName(fname);
   this.name.setLname(lname);
}

第一个输入提供给

时,比较应保持 true
facultyfName = input.nextLine();

是“Ben”,然后使用以下方法比较教员的名字:

System.out.println(course[0].getFaculty().getName().getfName().equals("Ben"));