【问题标题】:Using an "add" method to add objects to an ArrayList from a separate class使用“add”方法将对象从单独的类添加到 ArrayList
【发布时间】:2015-03-10 17:25:20
【问题描述】:

总的来说,我对编程还比较陌生,而且我已经将这项工作移植了好几个小时,但没有任何进展。我已经浏览了互联网的深处,但找不到与我正在寻找的答案相似的答案。在规范中:

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

B) 创建一个 Librarian.java 文件并修改 Library.java 文件。 编写代码对图书馆中的消息进行排序,以便所有书籍都在 按作者姓名字母顺序排列。创建一个只有主目录的图书管理员类 方法,因此您可以模拟图书馆中书籍的处理。产生 10 本新小说书,并使用 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 中?我一直在搞乱代码,所以可能会有很多错误,提前道歉。任何帮助都会很棒。 提前感谢您的宝贵时间!

【问题讨论】:

  • public static void addBook(FictionBook String) 作为注释,请不要用大写 S 命名任何变量 String。如果遵循驼峰式,您至少应该将其命名为 string,尽管我会如果您将其称为fictionBook 以区分它实际上是FictionBook,则更喜欢。

标签: java class arraylist add


【解决方案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 所说,将局部变量命名为“String”根本不是一个好主意。我会将它重命名为book,因为从技术上讲,它不是书名,而是对象的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多