我正在尝试从类Student调用此方法,我的学生类链接到我的Library,TextBook和LibraryCard类。
我的学生班:
private ArrayList<Student> students;
private Library collegeLib;
private Random randomNum;
我的学生构造函数:
public Student(String name, Library library)
{
// initialise instance variables
studentName = name;
studentJoin = library;
studentCard = studentJoin.issueCard();
studentBookBorrowed = null;
}
和我试图打电话的方法:
public void study()
{
if((studentBookBorrowed == null))
{
studentJoin.borrowBook(studentCard);
}
else if(!studentBookBorrowed.isFinished())
{
studentBookBorrowed.readNextChapter();
}
else
{
studentBookBorrowed.closeBook();
studentJoin.returnBook(studentBookBorrowed);
studentBookBorrowed= null;
}
}
在我的班级学院,我试图称之为我已经完成的方法:
private void study(Student student)
{
student.study();
}
然后尝试调用方法,研究();
这是我得到的错误:
COllege中的方法学习不能应用于给定类型:必需:学生;没有发现任何争论参数列表的长度不同..
如果我尝试通过这样做来调用方法:Student.study();我得到错误:非静态方法study()不能从静态上下文中引用。
我不能将我的study()方法改为静态,因为我的讲座不希望这样。
我尝试在大学中调用该方法
private void nextStep(){
....
else
{
study();
}
}
private void study(Student student)
{
student.study();
}
答案 0 :(得分:2)
编译器的这个错误说明了一切:
COllege中的方法学习不能应用于给定类型:必需:学生;没有发现任何争论参数列表的长度不同..
我很确定当你调用你的学习方法(来自你的大学课程)时,你会错过方法论证。
大学课堂学习方法签名()
study(Student s)
你应该这样做:
College c = new College();
Student s = new Student();
c.study(s);
你可能做过:
c.study(); //Missing arguments