如何将参数传递给非静态方法?

时间:2018-03-26 13:42:00

标签: java eclipse

所以我想从另一个类调用此方法,这是一个需要字符串参数的非静态方法。但是,当我尝试在book.borrow方法的参数中输入一个参数时,它表示我不能对非静态方法进行静态引用"。我在这里做错了什么?

import java.util.Scanner;

public class LibrarySystem{
    public static void main(String[]args){
        book book1 = new book("Divergent", "Veronica Roth", "B001", null);
        book book2 = new book("Green Eggs and Ham", "Dr Seuss", "B002", null);
        System.out.printf("%s\n", book1.title.toString()+ " " + (book1.bookID.toString()));
        System.out.printf("%s\n", book2.title.toString()+ " "  + (book2.bookID.toString()));

        Scanner students = new Scanner(System.in);
        String student  = String.valueOf(students);
        book.borrow(student);
    }
}

Underneath有我想要调用的方法

public boolean borrow(String borrowerID) {
    if (bookID != null) {
        this.borrowerID = borrowerID;
        return true;
    } else {
        return false;
    }
}

2 个答案:

答案 0 :(得分:0)

book.borrow(student);
如果borrow方法是static方法,则

上面的代码段有效。

not-static以来,您只能在instance book课程中进行调用。

book1.borrow(student);

答案 1 :(得分:0)

如果方法未声明为static,则必须在对象的实例上调用方法,而不是静态引用。您必须初始化包含该方法的类,然后运行borrow()