我有一个对象数组,我想检查对象中的变量是否具有特定名称。最终我喜欢为数组中的每个对象做这件事,但我只是在第一个索引上测试它。我不确定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"));
}
答案 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);
}
当第一个输入提供给
时,比较应保持 truefacultyfName = input.nextLine();
是“Ben”,然后使用以下方法比较教员的名字:
System.out.println(course[0].getFaculty().getName().getfName().equals("Ben"));