使用“add”方法将对象从单独的类添加到ArrayList

时间:2015-01-12 20:53:51

标签: java class arraylist add

一般来说,我对编程工作相对较新,而且我已经将这项工作嫁接了好几个小时,而且我们还没有进一步的工作。我已经浏览了互联网的深处,我找不到类似于我正在寻找的答案。这里的规范:

A)创建两个文件FictionBook.java和Library.java。 定义代表单本书的FictionBook类。这本书将有一个 标题,作者,可用性字段(1 =可用,0 =贷款)。你应该定义 借阅方法借用并归还书籍并阅读标题和作者 以及一个返回可用性的访问器方法。 此外,定义一个包含多达200本书籍的Library类。图书馆 应该包含带有ArrayList的书籍的模型。图书馆 class应该包含一个方法来将一本书添加到库中,从中删除一本书 图书馆借书和归还书籍。

B)创建Librarian.java文件并修改Library.java文件。 编写代码以对库中的消息进行排序,以便所有书籍都在其中 按作者姓名的字母顺序。创建一个只有主要的图书馆员班级 方法,因此您可以模拟库中书籍的处理。生成 10个新的FictionBooks并使用addBook方法将它们添加到库中。 您的图书馆应将邮件放在库中的正确位置 取决于作者的姓名。

我想我已经完成了第一部分,虽然我可能错了。这是我完全坚持的第二部分。这是我的三个班级

public class FictionBook {

    private String title, author;
    private int availability; 

    public FictionBook(String title, String author, int availability){
        super();
        this.title = title;
        this.author = author;
        this.availability = availability;
    }

    public FictionBook() {
        this.availability = 1;
    }

    public void borrowBook1() {
        setAvailability(0);
    }

    public void returnBook1() {
        setAvailability(1);
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getAvailability() {
        return availability;
    }

    public void setAvailability(int availability) {
        if(availability != 1 || availability != 0) {
            System.err.println("Enter 1 for available. Enter 2 for on loan.");
            throw new IndexOutOfBoundsException();
        } else {
            this.availability = availability;
        }
    }
}

import java.util.ArrayList;

public class Library {

    static ArrayList<FictionBook> BookList = new ArrayList<FictionBook>(200);

    public static void addBook(FictionBook String){
        BookList.add(String);
        System.out.println("Book Successfully Added To Library Database.");
        System.out.println(BookList);
    }

    public void deleteBook(){
        BookList.remove(index);
    }

    public void borrowBook(){
        BookList.get(index).FictionBook.borrowBook1();
    }

    public void returnBook(){
        BookList.get(index).FictionBook.returnBook1();  
    }

}

public class Librarian {

    public static void main(String args[]){

        FictionBook newBook1 = new FictionBook("USB Man", "Bob", 1);
        FictionBook newBook2 = new FictionBook("Bin Boys", "Chris", 1);
        FictionBook newBook3 = new FictionBook("Dinosaur", "Joe", 1);
        FictionBook newBook4 = new FictionBook("Pigasaurus", "Tom", 1);
        FictionBook newBook5 = new FictionBook("Cat Attack", "Calvin", 1);
        FictionBook newBook6 = new FictionBook("Shark Man", "Alfie", 1);
        FictionBook newBook7 = new FictionBook("Burnt Face Man", "Colin", 1);
        FictionBook newBook8 = new FictionBook("Egg Life", "Darwin", 1);
        FictionBook newBook9 = new FictionBook("Pizza King", "Pringle", 1);
        FictionBook newBook10 = new FictionBook("BillyBonka", "Randy", 1);

        Library.addBook();
    }
}

我只是想知道我是如何使用addBook()的;我的Library类中的方法是将Librarian类中定义的对象添加到Library类中的ArrayList中?我一直在乱用代码,所以可能会有很多错误,提前道歉。任何帮助都是超级的。 提前感谢您的时间!

1 个答案:

答案 0 :(得分:1)

查看您定义addBook方法的位置:

public static void addBook(FictionBook String)

这意味着每当你想要调用addBook时,你必须包含书名(FictionBook的对象名称,而不是文字标题。你必须这样做每本书,因为你一次只能做一本。

所以试试这个

FictionBook newBook1 = new FictionBook("USB Man", "Bob", 1);
Library.addBook(newBook1);
FictionBook newBook2 = new FictionBook("Bin Boys", "Chris", 1);
Library.addBook(newBook2);

等。等你定义的每本书

也像Compass所说,命名一个局部变量&#34; String&#34;根本不是一个好主意。我会将其重命名为book,因为它在技术上不是书的名称,而是对象的名称。