具有不同数据类型的数组,即字符串和整数。(Objectorientend)

2022-09-05 00:13:46

例如,我有3本书:,,,。Booknumber (int)Booktitle (string)Booklanguage (string)Bookprice (int)

现在,我想要一个名为 .我通过以下方式获取我设置的数据:books[3][4]setBooknumber
Book1.getBooknumber(), Book1.getBooktitle(),...,Book3.getBookprice().

我如何意识到这一点: .books[3][4] array

我不能叫它。因为我不能进入它。我不希望书号是字符串,也不是书价。请问我如何意识到这一点?String books[][] = new String [3][4]Booknumber (int)

进一步阐述它。我有2节课:书本和书UI。

public class book{
String Booktitle, Booklanguage;
int Booknumber, Bookprice;

//constructor

//get

//set
}

图书用户界面

public class bookUI
{
 public static void main(String arg[])
 {
   book book1 = new book();
   book book2 = new book();
   book book3 = new book();

   book1.setBooktitle();
   ...
   book3.setBookprice();

   //Here I want to have books[3][4] Array. And gettin the data via book1.get...book3.get into the array
 }
}

答案 1
public class Book
{
    public int number;
    public String title;
    public String language;
    public int price;

    // Add constructor, get, set, as needed.
}

然后将数组声明为:

Book[] books = new Book[3];

编辑:为了回应O.P.的困惑,Book应该是一个对象,而不是一个数组。每本书都应该自己创建(通过正确设计的构造函数),然后添加到数组中。事实上,我不会使用数组,而是使用 ArrayList。换句话说,您正在尝试将数据强制放入不适合手头任务的容器中。

我敢说,50%的编程是为数据选择正确的数据结构。如果有好的结构选择,算法自然会跟随。

正确完成后,UI 类将如下所示:编辑:添加到以下代码段的泛型。

...
ArrayList<Book> myLibrary = new ArrayList<Book>();
myLibrary.add(new Book(1, "Thinking In Java", "English", 4999));
myLibrary.add(new Book(2, "Hacking for Fun and Profit", "English", 1099);

等。

现在,您可以使用“集合”界面并执行如下操作:

int total = 0;
for (Book b : myLibrary)
{
   total += b.price;
   System.out.println(b); // Assuming a valid toString in the Book class
}
System.out.println("The total value of your library is " + total);

答案 2

注意 in 的重复 - 它尖叫类类型。BookBooknumber (int), Booktitle (string), Booklanguage (string), Bookprice (int)

class Book {
  int number;
  String title;
  String language;
  int price;
}

现在,您可以简单地拥有:

Book[] books = new Books[3];

如果需要数组,可以将其声明为对象数组,然后插入到其中:IntegerString

Object books[3][4]