三行代码  ›  专栏  ›  技术社区  ›  jgphoenix

如何在java中对类的数组调用方法

  •  0
  • jgphoenix  · 技术社区  · 2 月前

    我是一个乞丐,正在做一些关于Java OOP的练习,所以这是我的问题。 我有一个具有以下属性的Book类:

    private Author[] authors;

    我需要一个方法,只返回这些作者的名字(name1,name2,…)。类作者有一个getName()方法:

    public String getName(){
            return name;
    }
    

    我试过了,但没用:

    //Method in the Book class
    public String getAuthorsNames(){
        return authors.getName();
    }
    

    我需要在阵列中循环还是有其他方法?

    1 回复  |  直到 2 月前
        1
  •  0
  •   obeid_s    2 月前

    private Author[] authors; 是对象作者的数组

    您需要添加索引,然后获取名称,下面是一个示例:

    class Author {
    
      private String name;
    
      public Author(String name) {
        this.name = name;
      }
      
      public String getName() {
        return this.name;
      }
    

    在你的课本上:

      class Book {
        private Author[] authors;
        public Book(int authorsSize) {
          authors = new Author[authorsSize];
        }
        
        public void setAuthor(int index) {
          this.authors[index] = new Author("Author Name"):
        }
    
       public String getAuthorName(int index) {
          return this.authors[index].getName();
       }
    
       public String getAllAuthors() {
         String all = "";
         for (int i = 0; i < authors.length; i++) {
             all += authors[i].getName() + ", ";
         }
         
         return all;
       }
    
      }
    

    在添加作者之后。。使用getAllAuthors

    ---更多--- 而不是 Author[] authors = new Authors[size]; 你可以用 ArrayList<Author> authors = new ArrayList<>(); 然后你可以使用:

    authors.add(new Author("Author name1"));
    authors.add(new Author("Author name2"));
    authors.add(new Author("Author name3"));
    authors.add(new Author("Author name4"));
    ......