Java 对象创建对象

Java 对象创建对象,java,bluej,Java,Bluej,我是一名刚刚接受培训的程序员,我的任务中的这个问题让我彻底难倒了。我们目前正在用对象创建对象,我完全迷路了。我有一个MediaDemo类,它应该从Book类创建一个实例。我觉得我有点接近了,但是错误一直在说它不能接受变量类型。。。下面是两个类的代码: public class Book { // The fields. private String author; private String title; private int pages;

我是一名刚刚接受培训的程序员,我的任务中的这个问题让我彻底难倒了。我们目前正在用对象创建对象,我完全迷路了。我有一个MediaDemo类,它应该从Book类创建一个实例。我觉得我有点接近了,但是错误一直在说它不能接受变量类型。。。下面是两个类的代码:

    public class Book 
{ 
    // The fields. 
    private String author; 
    private String title;
    private int pages;
    private String refNumber;
    private int borrowed;
    private boolean courseText;

/** 
 * Set the author and title fields when this object 
* is constructed. 
*/ 
    public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText) 
   { 
       author = bookAuthor; 
        title = bookTitle;
        pages = bookPages;
        refNumber = ("");
        courseText = theCourseText;
    }

public String printAuthor()
{
return author;
}

public String printTitle()
{
return title;
}

public void setRefNumber(String ref)
{
if(ref.length() == 3){
refNumber = ref;
}
else{
System.out.println("Please enter a String that's 3 characters long.");
}
}

public String printRef()
{
return refNumber;
}

public void borrow()
{
    borrowed += 1;
}
public int getBorrowed()
{
    return borrowed;
}

public void printDetails()
{
if(refNumber == ("")) {
System.out.println("Book Author: " + author + ". | Book Title: " + title + ". | Book Length: " + pages + " pages. refNumber: ZZZ | Borrowed Books: " + borrowed);
}
else {
System.out.println("Book Author: " + author + ". | Book Title: " + title + ". | Book Length: " + pages + " pages. | Number: " + refNumber + ". | Borrowed Books:     " + borrowed);
}
}
} 
谢谢你在这方面的任何帮助,我会很高兴,只要我找到一个解决方案,防止我的头撞到我的桌子上

--更新--


好的,这是这本书的当前版本。

语句
Book=newbook()实例化一个新的对象book,当您说newbook()时,它意味着调用book构造函数

public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText) 
   { 
       author = bookAuthor; 
        title = bookTitle;
        pages = bookPages;
        refNumber = "(\"\")"; \\result : ("")
        courseText = theCourseText;
    }
。在代码中,您没有提供创建object book的新实例所需的参数。因此,您可以尝试替换:

book = new Book();


当然,对于参数的相应数据类型,

您在书中有一个参数化构造函数。。。 但是,当您调用时,您正在调用一个非参数化构造函数

所以代码应该是

Book book = new Book(author, title, bookPages, theCourseText) ;
是,它将创建一个新实例,创建时将调用参数化构造函数。。
谢谢

在MediaDemo类中,您正在调用默认构造函数Book() 但它不是在Book类中声明的。因为您有一个显式构造函数
公共图书(String bookAuthor、String bookTitle、int bookPages、boolean theCourseText)
您需要使用它或显式声明一个dafault构造函数

在调用第行之前,您必须为所有参数分配一些值
图书=新书(图书作者、书名、书页、课程文本)

请在您的帖子中给出任何具体错误。您在书中使用了参数化构造函数,但在实例化您的参数时没有传递参数。具体错误是:book book=新书(作者、标题、书页、课程文本);类Book中的构造函数Book不能应用于给定类型;必需:java.lang.String、java.int、boolean-found:无参数抱歉!这是我第一次在这里发帖。非常感谢大家的回复!我已经用你的建议替换了出错的代码,我知道在第一个“字符串”之后会出现这个错误——我正在使用BlueJ,不确定我是否提到了这个。哦,是的。我没看到。:)非常感谢Jan的帮助,这里是新代码:我编辑了原始帖子以涵盖新代码^-^这个网站真的很整洁!
book = new Book( "Scarlet", "I dunnu", 100, true); 
Book book = new Book(author, title, bookPages, theCourseText) ;