从另一个类Java

时间:2015-11-21 12:42:56

标签: java

我正在尝试从类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();   
}

1 个答案:

答案 0 :(得分:2)

编译器的这个错误说明了一切:

  

COllege中的方法学习不能应用于给定类型:必需:学生;没有发现任何争论参数列表的长度不同..

我很确定当你调用你的学习方法(来自你的大学课程)时,你会错过方法论证。

大学课堂学习方法签名()

study(Student s)

你应该这样做:

College c = new College();
Student s = new Student();
c.study(s);

你可能做过:

c.study();  //Missing arguments