对象创建对象
Object creating object
我是一个非常新的培训程序员,我作业中的这个问题让我非常难过。我们目前正致力于用对象创建对象,我完全迷路了。我有一个 MediaDemo class,它应该从书中创建一个实例 class。我觉得我有点接近了,但错误一直在说它不能接受变量类型……这是来自 classes:
的代码
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);
}
}
}
感谢您在这方面的任何帮助,一旦我找到一个解决方案可以防止我在办公桌上敲打我的头,我会很高兴...
--更新--
/**
* Write a description of class MediaDemo here.
*
* @author ---
* @version 2-17-16
*/
public class MediaDemo
{
private Book book;
private String bookAuthor;
private String bookTitle;
private int bookPages;
private boolean theCourseText;
public MediaDemo (String author,String title,int pages,boolean courseBook)
{
bookAuthor = author;
bookTitle = title;
bookPages = pages;
theCourseText = courseBook;
createBook();
}
private void createBook()
{
book = new Book(bookAuthor, bookTitle, bookPages, theCourseText);
}
}
好的,这是本书的最新版本。
语句 book = new Book();
实例化了一个新对象 book ,当你说 new Book() 时,它意味着调用 Book 构造函数
public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText)
{
author = bookAuthor;
title = bookTitle;
pages = bookPages;
refNumber = "(\"\")"; \result : ("")
courseText = theCourseText;
}
。在您的代码中,您没有提供创建对象书的新实例所需的参数。所以你可以尝试替换:
book = new Book();
和
book = new Book( "Scarlet", "I dunnu", 100, true);
当然有参数对应的数据类型
您在书中有一个参数化构造函数...
但是当你调用时你调用的是一个非参数化的构造函数..
所以代码应该是
Book book = new Book(author, title, bookPages, theCourseText) ;
是的,它将创建一个新实例,并且在创建时将调用参数化构造函数..
谢谢..
在 MediaDemo Class 中,您正在调用默认构造函数 Book()
但它没有在 Book Class 中声明。因为你有一个明确的构造函数
public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText)
您需要使用它或显式声明默认构造函数
在调用以下行之前,您必须为所有参数分配一些值
book = new Book( bookAuthor, bookTitle, bookPages, theCourseText);
我是一个非常新的培训程序员,我作业中的这个问题让我非常难过。我们目前正致力于用对象创建对象,我完全迷路了。我有一个 MediaDemo class,它应该从书中创建一个实例 class。我觉得我有点接近了,但错误一直在说它不能接受变量类型……这是来自 classes:
的代码 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);
}
}
}
感谢您在这方面的任何帮助,一旦我找到一个解决方案可以防止我在办公桌上敲打我的头,我会很高兴...
--更新--
/**
* Write a description of class MediaDemo here.
*
* @author ---
* @version 2-17-16
*/
public class MediaDemo
{
private Book book;
private String bookAuthor;
private String bookTitle;
private int bookPages;
private boolean theCourseText;
public MediaDemo (String author,String title,int pages,boolean courseBook)
{
bookAuthor = author;
bookTitle = title;
bookPages = pages;
theCourseText = courseBook;
createBook();
}
private void createBook()
{
book = new Book(bookAuthor, bookTitle, bookPages, theCourseText);
}
}
好的,这是本书的最新版本。
语句 book = new Book();
实例化了一个新对象 book ,当你说 new Book() 时,它意味着调用 Book 构造函数
public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText)
{
author = bookAuthor;
title = bookTitle;
pages = bookPages;
refNumber = "(\"\")"; \result : ("")
courseText = theCourseText;
}
。在您的代码中,您没有提供创建对象书的新实例所需的参数。所以你可以尝试替换:
book = new Book();
和
book = new Book( "Scarlet", "I dunnu", 100, true);
当然有参数对应的数据类型
您在书中有一个参数化构造函数... 但是当你调用时你调用的是一个非参数化的构造函数..
所以代码应该是
Book book = new Book(author, title, bookPages, theCourseText) ;
是的,它将创建一个新实例,并且在创建时将调用参数化构造函数.. 谢谢..
在 MediaDemo Class 中,您正在调用默认构造函数 Book()
但它没有在 Book Class 中声明。因为你有一个明确的构造函数
public Book( String bookAuthor, String bookTitle, int bookPages, boolean theCourseText)
您需要使用它或显式声明默认构造函数
在调用以下行之前,您必须为所有参数分配一些值 book = new Book( bookAuthor, bookTitle, bookPages, theCourseText);