【问题标题】:Setting of an array or array list of object对象数组或数组列表的设置
【发布时间】:2015-11-25 00:58:55
【问题描述】:

我对编码还很陌生,所以只是想知道是否有人可以为我指明正确的方向。我正在寻找一个包含 Book 对象数组或数组列表的 Library 类,这些对象执行适当的功能,例如添加 Book、编辑 Books 详细信息、删除 Book、归还 Book 和借出 Book。

到目前为止,我已经创建了以下 Book 类

//Instance variables
private int BookID;
private String Title;
private String Author;
private boolean On_Loan;
private int Number_of_Loans;

//Constructor
public Book(int BookID, String Title, String Author, boolean On_Loan, int Number_of_Loans){
    this.BookID = BookID;
    this.Title = Title;
    this.Author = Author;
    this.On_Loan = On_Loan;
    this.Number_of_Loans = Number_of_Loans;

}

//Mutator methods
public void setBookID(int BookID){
    this.BookID = BookID;
}
public void setTitle(String Title){
    this.Title = Title;
}
public void setAuthor(String Author){
    this.Author = Author;
}
public void setOn_Loan(boolean On_Loan){
    this.On_Loan = On_Loan;
}
public void setNumber_of_Loans(int Number_of_Loans){
    this.Number_of_Loans = Number_of_Loans;
}

//Accessor methods
public int getBookID(){
    return BookID;
}
public String getTitle(){
    return Title;
}
public String getAuthor(){
    return Author;
}
public boolean getOn_Loan(){
    return On_Loan;
}
public int getNumber_of_Loans(){
    return Number_of_Loans;
}

}

【问题讨论】:

  • 你知道如何用java写一个类吗?
  • 到目前为止我有一个书课

标签: java arrays object


【解决方案1】:

你需要一个ArrayList<Book> 对象!创建一个:

ArrayList<Book> books = new ArrayList<> ();

要向其中添加项目,

books.add (yourBookObjectToBeAdded);

要更改书籍的属性,您需要先获取书籍,

books.get(theIndexOfTheBook);

建议将书存储在一个变量中:

Book myBook = books.get(theIndexOfTheBook);

然后你就可以使用其中一个修改器(setter),

myBook.setOn_Loan (true);

优点:

  • 与数组不同,ArrayList 的大小是动态的。
  • 它是通用的,你不需要投射东西。

这基本上是使用数组列表的指南。现在你想创建一个能做所有这些事情的类。所以它必须包含一个ArrayList&lt;Book&gt;:

public class Library {
    private ArrayList<Book> books
    public Library () {
       books = new ArrayList<> ();
    }

    public ArrayList<Book> getBooks () {
        return books;
    }
}

然后用户可以获取books,对数组列表进行操作。

或者,您可以使其更抽象。可以在类中添加borrowBookreturnBookeditBook等方法。例如,borrowBook 方法是这样的:

public void borrowBook (int bookIndex) {
    Book book = books.get(bookIndex);
    book.setOn_Loan (true);
}

【讨论】:

  • 非常感谢您的意见!很有帮助。
【解决方案2】:

首先,您必须创建 Book 对象

然后你可以像这样创建一个 Book 对象数组

Book[] books = new Book[10]; //fixed list of size 10
Book b1 = new Book(); // create a book object
books[0] = b1; // assign it to be the first array element

或者像这样的arraylist列表

ArrayList<Book> books = new ArrayList<Book>(); //initial empty list, no fixed size
Book b1 = new Book(); // create a book object
books.add(b1); // append it to the list

【讨论】:

  • 谢谢,这很有帮助。我已经创建了 Book 对象
【解决方案3】:

如果它们是可变数量的书籍,使用 ArrayList 将是一个不错的选择,因为您可以动态添加更多书籍,这与数组不同,您必须固定大小。

要创建 Book 对象的 ArrayList,请使用:ArrayList&lt;Book&gt; books = new ArrayList&lt;Book&gt;();

要将一本书添加到列表中:books.add(new Book());

要对一本书执行命令(即编辑详细信息),您需要知道该书的索引,或者您可以遍历所有索引。您可以使用 .get(index) 命令执行此操作,例如:

books.get(index).doSomething();

您可以阅读更多关于 ArrayLists 及其所有方法的信息here,并且可以找到一个简单的教程here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2013-11-13
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多