【发布时间】:2019-05-22 20:15:32
【问题描述】:
我必须制作一个图书馆系统,它有一个 Book 类和一个 Library 类。两者都有一个编辑书的方法。这个概念是图书馆员搜索这本书..然后它被克隆..克隆的书然后在确认之前被编辑..然后放回图书馆代替以前的书。 Library 类编辑 book 方法如下所示:public boolean editBook(String username, Book book),Book 类方法如下所示 public boolean editBook(Book book)。
现在我的问题是editBook() 方法应该能够编辑书籍的每一个属性。仅采用一个属性(书籍)并返回一个布尔值的方法如何编辑标题、作者、权限类型或其中任何一个对我来说没有意义,我一直坚持这一点。
最初我认为也许可以在 editBook 方法中获取用户输入,以允许用户选择他们实际编辑的内容,但我发现我们不能这样做。
这是我到目前为止所拥有的,但我被告知我不能使用它,因为它从 book 类调用用户输入,并且它(在这种情况下)只能从 main 方法调用用户输入。有人可以指出我正确的方向吗?感谢任何可以提供帮助的人
Library class method
public boolean editBook(String username, Book book) throws CloneNotSupportedException{
Book clonedBook = book.clone();
boolean editBook = clonedBook.editBook(clonedBook);
while(editBook){
for(Book b: books){
if(b.getISBNNumber().equalsIgnoreCase(book.getISBNNumber())){
int index = books.indexOf(b);
books.set(index, clonedBook);
}
}
editBook = false;
}
return true;
}
Book class method
public boolean editBook(Book book){
boolean confirm = false;
Scanner scan = new Scanner(System.in);
String y = "";
do{
do{
int x =userInputEnterEditChoice();
editBookSwitch(x);
y = userInputMoreAttibutes();
}while(y.equalsIgnoreCase("y"));
String z = userInputConfirmEdit();
if(confirmEdit(z, book)){
confirm = true;
}
else{
System.out.println("would you like to re edit the book?");
y = scan.nextLine();
}
}while(y.equalsIgnoreCase("y"));
return confirm;
}
【问题讨论】: