我环顾四周,并没有找到我正在询问的答案,所以这里是:
我是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中调用该实例。我是否需要更改课程书并将“这个”?如果是这样,是这个()还是这个.____?或者你是否在课程目录中这样做?
答案 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(想想你是否真的需要直接访问)。
顺便提一下,在您的代码中,您使用大小为3
,4
和7
的空数组初始化三个数组。构造函数(重置数组)会覆盖这些初始化。
答案 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]);
}
}
请记住将每个类放入一个单独的文件中,或者只获取一个公共类,其余默认值为每个文件