Java 为什么getter方法没有';t返回任何对象';s属性?

Java 为什么getter方法没有';t返回任何对象';s属性?,java,arrays,object,return-value,getter-setter,Java,Arrays,Object,Return Value,Getter Setter,我的程序应该返回两个不同对象的不同属性。在我的main方法中,我在创建新对象时将这些属性设置为参数。但是当我调用这些getter方法时(我在一个单独的类中编写了这些方法,如果需要的话,我可以发布该类),它不会返回所有属性。它只打印出第一个属性(也被设置为第一个参数),而不是其他两个值。我不知道我哪里做错了 我的代码:主类: package main; public class Main { public static void main(String[] args) {

我的程序应该返回两个不同对象的不同属性。在我的main方法中,我在创建新对象时将这些属性设置为参数。但是当我调用这些getter方法时(我在一个单独的类中编写了这些方法,如果需要的话,我可以发布该类),它不会返回所有属性。它只打印出第一个属性(也被设置为第一个参数),而不是其他两个值。我不知道我哪里做错了

我的代码:主类:

    package main;

public class Main {

    public static void main(String[] args) {

        //creating object for book 1 
        Book book1 = new Book("The brief history of time", "111", new String[]{"S. hawking", "hawking's friends"});
        //creating object for book 2
        Book book2 = new Book("100 years of solitude", "222", new String[]{"G.marquez", "marquez's friend"});

        System.out.println("All info for the first book: \n");

        System.out.println("Name: " + book1.getName());
        System.out.println("ISBN: " + book1.getIsbn());
        System.out.println("Authors: " + book1.getAuthors());

        System.out.println("\n\n");
        System.out.println("All info for the second book: \n");
        System.out.println("Name: " + book2.getName());
        System.out.println("ISBN: " + book2.getIsbn());
        System.out.println("Authors: " + book2.getAuthors());

    }

}
图书类别:

    package main;

public class Book {
    //variables

    private String name;
    private String isbn;
    private String[] authors;

    //constructors
    public Book(String name, String isbn, String[] authors) {
        this.name = name;
        this.isbn = name;
        this.authors = authors;

    }

    //setters
    public void setName(String name) {
        this.name = name;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public void setAuthors(String[] authors) {
        this.authors = authors;
    }

    //getters
    public String getName() {
        return name;
    }

    public String getIsbn() {
        return isbn;
    }

    public String[] getAuthors() {
        return authors;
    }

}

您需要迭代
authors
数组以打印其中的字符串。大概是这样的:

    System.out.println("All info for the first book: \n");

    System.out.println("Name: " + book1.getName());
    System.out.println("ISBN: " + book1.getIsbn());
    for (String author : book1.getAuthors()) {
        System.out.println("Author: " + author);
    }
您的
书中也有一个问题
类构造函数:

public Book(String name, String isbn, String[] authors) {
    this.name = name;
    this.isbn = name; // this.isbn is not name!
    this.authors = authors;
}
public Book(String name, String isbn, String[] authors) {
    this.name = name;
    this.isbn = name; // you are setting isbn as name! 
    this.authors = authors;   
}
必须是:

public Book(String name, String isbn, String[] authors) {
    this.name = name;
    this.isbn = isbn;
    this.authors = authors;
}

当您想要打印字符串数组时,可以使用此选项

System.out.println(Arrays.toString(book1.getAuthors()));
  • 书本构造函数存在问题:

    public Book(String name, String isbn, String[] authors) {
        this.name = name;
        this.isbn = name; // this.isbn is not name!
        this.authors = authors;
    }
    
    public Book(String name, String isbn, String[] authors) {
        this.name = name;
        this.isbn = name; // you are setting isbn as name! 
        this.authors = authors;   
    }
    
  • 我认为您需要定义getAuthors如何打印authors数组,如


  • 同时提供
    Book
    类的设计。你能发布Book类、你得到的实际输出和你期望的输出吗?Luiggi Mendoza,paolo,我已经编辑过了。你需要发布你得到的输出和你期望的输出。互联网没有水晶球!this.isbn=name;-真正地如果您想要漂亮的Spring Arrays,请使用java.util.Arrays.toString(book1.getAuthors()),或者使用
    Arrays.toString(book1.getAuthors()
    )。