为此,我正在运行 BlueJ 做面向对象的 java 并且我有 JVM 7.1 处于活动状态......
好的,所以我必须申请我的学位,但我遇到了麻烦。我很感谢“老师”让我使用我的三阵列系统,因为迭代器弄乱了我的单阵列系统。
遗憾的是,我无法在互联网上找到任何可以帮助解决我的问题的东西......
基本上当我去向数组添加一个“学生”时,该对象在所有字段中都是空的。我不知道如何修改它们。
我的数组使用菱形符号。类似于以下内容:
private ArrayList<Student> students;
这是我目前使用的数组形式,还有 2 个数组。
private ArrayList<CollegeEmployee> staff;
private ArrayList<Faculty> members;
有人建议我使用单个数组,但如上所述,迭代器把它搞砸了,只要我能修复它,我不在乎我有多少个数组,哈哈。
该程序在一个 while 循环内运行,并提示用户为某个命令输入一个字母。当用户输入“s”时,然后将一个学生添加到数组中,这就是问题所在。对象被赋予空值,我不知道如何修改它们...以下是调用对象构造函数
private void addStudent()
{
Student b = new Student(firstName, lastName, address, postCode, phoneNumber, gradePointAvg, selectedCourse);
students.add(b);
}
当用户退出程序时打印数组时,我从终端窗口得到以下输入:
空,空,空,0,0 0 空
我的问题是:我如何给对象 b 值以覆盖空值。顺便说一句,这些值必须由用户输入,而不是在数组的声明中预先设置。
感谢您的时间 :)
这东西让我讨厌代码 xD
编辑:
这是学生类的构造函数和字段:
private String title;
public double gradePointAvg;
public String selectedCourse;
/**
* Constructor for objects of class Student
*/
public Student(String firstName, String lastName, String address, int postCode, int phoneNumber, double gradePointAvg, String selectedCourse)
{
super(firstName, lastName, address, postCode, phoneNumber);
this.title = title;
this.gradePointAvg = gradePointAvg;
this.selectedCourse = selectedCourse;
}
人超类构造函数:
public String firstName;
public String lastName;
public String address;
public int postCode;
public int phoneNumber;
/**
* Constructor for objects of class Person
*/
public Person(String firstName, String lastName, String address, int postCode, int phoneNumber)
{
// initialise fields
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.postCode = postCode;
this.phoneNumber = phoneNumber;
}
上面的方法,addStudent 调用 student 构造函数,然后调用 person 构造函数。是的,它确实必须像这样,因为它是项目的限制。
我暂时公开了我的字段,因为它们被设置为受保护,因为私有是本地范围。
非常感谢你们检查我的代码..我希望我的老师更好>.<