我有两个班级(" Startup.java"和" Book.java")。
我的目标是打印来自" Book.java"的所有对象。
要调用view()
方法,我初始化了一个新的书籍对象'。问题是:
如果我打电话给#34; book.view",它会打印' 0nullnull0' (我知道,这是因为构造函数),我不知道如何解决它。在这里你可以看到代码:
package array;
import java.util.*;
public class Startup{
public static void main(String[] args) {
Book book = new Book(0, null, null, 0);
book.view();
}
package array;
public class Book {
private int number;
private String title;
private String language;
private int price;
public Book(int number, String title, String language, int price) {
this.number = number;
this.title = title;
this.language = language;
this.price = price;
}
public void add() {
Book b1 = new Book(1, "title", "de", 2);
}
public void view() {
System.out.println(number + title + language + price);
}
}
答案 0 :(得分:0)
您已使用
初始化了对象Book book = new Book(0, null, null, 0);
因此,输出就是这样。
我认为您希望打印添加方法中的值(不确定该方法适用于哪种?)。 因此,您需要使用这些值调用构造函数。
Book book = new Book(1, "title", "de", 2);
book.view();
答案 1 :(得分:0)
您可以通过将对象存储在数组中然后遍历数组并为数组的每个Object调用list函数来打印所有Book对象
Book[] bookArray=new book[n];
将对象添加到此数组
现在遍历数组你可以打印所有对象
for(int i=0;i<n;i++) {
bookArray[i].view();
}