类型中的方法不适用于参数

Method in the type is not applicable to arguments

我是一个正在学习基础 class 创建教程的新手,我得到了以下说明。

1) Create a new class called Book.
2) Create fields for title, author, numPages, and isbn.
3) Create a method called toString that appropriately describes the book.
4) In the file, BookRunner.java:
  a) Declare two book variables
  b) Instantiate two book objects and set their fields.
  c) Print descriptions of the book objects using their toString methods.

所以我一直按照说明使用两个classes,你可以看到下面的代码

public class Book {
    public String title;
    public String author;
    public String numPages;
    public String isbn;

    public void toString(String bookName) {
        String description = "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn; 
        System.out.println(description);
    }

public class Ex1_BookRunner {

    public static void main(String[] args) {
        Book firstBook;
        Book secondBook;

        firstBook = new Book();
        secondBook = new Book();

        firstBook.title = "One Piece";
        firstBook.author = "Oda-Sensei";
        firstBook.numPages = "100";
        firstBook.isbn = "123456";

        secondBook.title = "Life of Megan Fox";
        secondBook.author = "Micheal Bay";
        secondBook.numPages = "200";
        secondBook.isbn = "098765";

        toString(firstBook);
        toString(secondBook);
    }
}

我的代码在调用方法 toString.

的最后两行之前没有显示任何错误

我收到以下错误

The method toString() in the type Object is not applicable for the arguments (Book)

我是不是在我的方法声明中的某个地方犯了一些基本错误?我查看了关于 SO 的其他帖子,提出了同样的问题,但我无法理解所给出的解释,因为它们主要涵盖了我还没有学过的代码语法。

感谢任何帮助:)

试试 firstBook.toString(); - 这会产生一个字符串,如果你想看到它,你可以做类似 System.out.println(firstBook.toString()); 的事情。该错误告诉您没有将书作为参数的 toString 方法。您想要的是调用 toString() 方法 on 您创建的 Book 实例。

将它们更改为:

firstBook.toString();
secondBook.toString();

您可以在已创建的 firstBook 和 secondBook 上调用默认的 .toString() 方法。但是由于您没有定义将 Book 对象作为参数的 toString 方法,因此将 Book 对象传递给 toString() 会产生上述错误。

事实上,您的错误行解释得很清楚:

The method toString() in the type Object is not applicable for the arguments (Book)

试试我们的 toString 方法

 public String toString() {
   String discription= "Title:" + title + "Author"+ author + "Num. of pages" + numPages + "ISBN" + isbn;
    return discription;
}

并且您在 main 方法中的打印语句也应该如下所示

   System.out.println(firstBook.toString());
   System.out.println(secondBook.toString());

希望对你有所帮助

同一个class

中有两个publicclass
        public class Book {
//your codes or variables
}
    public class Ex1_BookRunner {
//your code or variables
}

试试这个