Java:使用数组创建类并在另一个类中使用这些数组

时间:2017-09-30 21:06:46

标签: java arrays

我环顾四周,并没有找到我正在询问的答案,所以这里是:

我是Java新手,我需要创建一个有3个数组的类,可以从另一个类调用。我迷失了,因为我不知道如何“正确”创建实例,以便可以从没有继承的其他类调用它。

public class Book {
    int[] Book0 = new int[7];
    int[] Book1 = new int[4];
    int[] Book2 = new int[3];

   public Book {
    Book0 = new int[] {1,2,3,4,5,6,7};
    Book1 = new int[] {};
    Book2 = new int[] {};
   }

}

 public class Catalogue {
   public Catalogue{
   }
}

在类目录中,我不确定如何在类Book中调用该实例。我是否需要更改课程书并将“这个”?如果是这样,是这个()还是这个.____?或者你是否在课程目录中这样做?

4 个答案:

答案 0 :(得分:2)

您希望使用getter和setter封装字段,并为getter提供公共访问类型,以便您可以在对象和包之外访问数组。

public class Book {
    int[] Book0;
    int[] Book1;
    int[] Book2;

   public Book {
    Book0 = {1,2,3,4,5,6,7};
    Book1 = new int[4];
    Book2 = new int[3];
   }


public int[] getBook0(){
  return Book0;
}

public int[] getBook1(){
  return Book1;
}

public int[] getBook2(){
  return Book2;
}



}

 public class Catalogue {
   public Catalogue{
     Book book = new Book();
     int[] tempArray = book.getBook0();
   }
}

答案 1 :(得分:0)

您需要创建类的对象,并且可以使用该对象来调用方法或构造函数。

Book book = new Book();

答案 2 :(得分:0)

您可能希望实例化Book并使用该实例。

Catalogue类(或使用Book的任何其他类)中:

Book b = new Book();
b.Book0; // {1,2,3,4,5,6,7}
b.Book1; // {}
b.Book2; // {}

此外,您应该将数组声明为public,以表明每个人都可以查看和修改它们。

如果这个Book对象具有更多功能(它实现的方法),你可能不应该像这样使用它,而是将数组声明为private,不允许访问任何其他类,并使用getter / setters(想想你是否真的需要直接访问)。

顺便提一下,在您的代码中,您使用大小为347的空数组初始化三个数组。构造函数(重置数组)会覆盖这些初始化。

答案 3 :(得分:0)

我不确定,但如果我理解你,你想要做那样的事情:

public class Book {

    // private fields : Remmember, in java + OOP class members should be private
    private String[] page0;
    private String[] page1;
    private String[] page2;

   public Book(int sizeOfPage0, int sizeOfPage1, int sizeOfPage2) {
      page0 = new String[sizeOfPage0]; // Argument inside [] sets array size
      page1 = new String[sizeOfPage1];
      page2 = new String[sizeOfPage2];
   }

   // Getters

   public String[] getPage0() {
       return page0;
   }

   public String[] getPage1() {
       return page0;
   }

   public String[] getPage2() {
       return page2;
   }

}

public class Catalogue {

    private Book[] books;

    public Catalogue(Book[] books) {
        this.books = books;
    }

    public Book[] getBooks() {
        return this.books;
    }

}

public class MyApp {

    // entrypoint of the application
    public static void main(String[] args) {

         Book book1 = new Book(2, 1, 1);
         book.getPage0()[0] = "In some place of 'La mancha' which I do not want remember";
         book.getPage0()[1] = "lives some 'hidalgo' ... etc";
         book.getPage1()[0] = "Sancho Panza as squire of Don Quijote";

         Book book2 = new Book(1, 3, 1);

         // ... something similar...

         Book[] books = {book1, book2};

         Catalogue catalogue = new Catalogue(books);

         System.out.println(catalogue.getBooks()[0].getPage0()[0]);
    }

}

请记住将每个类放入一个单独的文件中,或者只获取一个公共类,其余默认值为每个文件