Как напечатать объект с конструктором из другого класса (конструктор) (Java) - PullRequest
0 голосов
/ 07 июня 2018

У меня есть два класса («Startup.java» и «Book.java»).Моя цель - распечатать все объекты из "Book.java".Чтобы вызвать метод view(), я инициализировал новый «объект книги».Проблема в том, что если я вызываю «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);
    }
}

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Вы можете распечатать все объекты Book, сохранив объекты в массиве, а затем итерируя по массиву и вызвав функцию list для каждого объекта массива

Book[] bookArray=new book[n];

Добавьте свои объекты в этот массив

Теперь итерируя по массиву, вы сможете распечатать все объекты

for(int i=0;i<n;i++) {
    bookArray[i].view();
}
0 голосов
/ 07 июня 2018

Вы инициализировали свой объект, используя

Book book = new Book(0, null, null, 0);

Следовательно, вывод будет таким.

Я думаю, вам нужны значения в вашем методе add (не уверен, что это за методдля?) для печати.Итак, вам нужно вызвать ваш конструктор с этими значениями.

Book book = new Book(1, "title", "de", 2);
book.view();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...