2015-01-12 107 views
0

我對編程相對來說比較陌生,我一直在將這段工作嫁接幾個小時,而且還沒有進一步完善。我瀏覽了互聯網的深處,找不到類似於我所尋找的答案。這裏的規格:使用「add」方法將對象從單獨的類添加到ArrayList中

A)創建兩個文件FictionBook.java和Library.java。 定義一個代表一本書的FictionBook類。該書將有一個 標題,作者,可用性字段(1 =可用,0 =貸款)。您應該定義 訪問者方法借閱並返回圖書並閱讀標題和作者 以及訪問方法以返回可用性。 另外,定義一個包含多達200本書的庫類。庫 應該使用ArrayList模型包含書籍。圖書館 類應該包含一個方法來向圖書館添加一本書,從圖書館刪除一本圖書並借閱和歸還圖書。

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

'公共靜態無效addBook(FictionBook字符串)'作爲一個註釋,請不要命名任何變量'字符串'與大寫字母S.你應該叫它'字符串'至少如果駱駝案件,但如果你稱它爲'fictionBook'來區分它實際上是一個'FictionBook',我寧願。 – Compass

回答

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); 

等etc.對於你定義的每本書

也像Compass說的那樣,命名局部變量「String」根本不是一個好主意。我會將它重命名爲book,因爲它在技術上不是本書的名稱,而是對象的名稱。

相關問題