たとえば、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)
を取得できないためです。 BooknumberもBookpriceも文字列にしたくありません。どうやって気づくの?
さらに詳しく説明します。私は本とbookUIの2つのクラスを持っています。
本
_public class book{
String Booktitle, Booklanguage;
int Booknumber, Bookprice;
//constructor
//get
//set
}
_
bookUI
_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
}
}
_
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);
Booknumber (int), Booktitle (string), Booklanguage (string), Bookprice (int)
でのBook
の繰り返しに注意してください。クラス型を求める叫びです。
class Book {
int number;
String title;
String language;
int price;
}
今、あなたは単に持つことができます:
Book[] books = new Books[3];
配列が必要な場合は、オブジェクト配列として宣言し、Integer
およびString
を挿入します。
Object books[3][4]
オブジェクトタイプ、つまりオブジェクトブックを使用します[3] [4]。
数、タイトル、価格のプロパティを持つクラスBookを作成してみませんか。次に、それらを1次元配列に格納しますか?そのように呼び出すのではなく
Book[i][j]
..本のタイトルを取得するには、
Book[i].Title
それはもう少し管理しやすく、コードフレンドリーであるように私には思えます。