【问题标题】:How to print a object with constructor from another class (constructor) (java)如何使用另一个类(构造函数)的构造函数打印对象(java)
【发布时间】:2018-11-17 01:28:20
【问题描述】:

我有两个类(“Startup.java”和“Book.java”)。 我的目标是打印“Book.java”中的所有对象。 为了调用view() 方法,我初始化了一个新的'book-object'。问题是: 如果我调用“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);
    }
}

【问题讨论】:

  • 你希望它打印什么?
  • 看看你的 add 方法和你的评论“我知道,这是因为构造函数”让我觉得你还不知道 Java 是如何工作的.我强烈建议您阅读教程。你的代码是顺便说一句。完全按照预期去做。您将值初始化为 0nullnull0,然后就可以打印出来了。
  • 如果理解正确,您希望Startup 打印为Book 类创建的所有对象(实例)。是吗?
  • 我没有看到这里的问题。代码正在做它应该做的事情:)
  • @PaulBenn 它正在做它所写的事情,这并不意味着它正在做它应该做的事情

标签: java object methods printing constructor


【解决方案1】:

您可以通过将对象存储在数组中然后遍历数组并为数组的每个对象调用列表函数来打印所有 Book 对象

Book[] bookArray=new book[n];

将你的对象添加到这个数组中

现在遍历数组,您将能够打印所有对象

for(int i=0;i<n;i++) {
    bookArray[i].view();
}

【讨论】:

    【解决方案2】:

    你已经使用

    初始化了你的对象
    Book book = new Book(0, null, null, 0);
    

    因此,输出是这样的。

    我认为您希望打印 add 方法中的值(不确定该方法的用途?)。 因此,您需要使用这些值调用构造函数。

    Book book = new Book(1, "title", "de", 2);
    book.view();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      相关资源
      最近更新 更多