我必须创建一个图书馆系统,它具有Book类和Library类。两者都有一个编辑书本方法。概念是,馆员搜索书籍。然后将其克隆。在确认之前,对克隆的书籍进行编辑。 Library类编辑book方法看起来像这样:public boolean editBook(String username, Book book)
,而Book类方法看起来像这样public boolean editBook(Book book)
。
现在我的问题是editBook()
方法应该能够编辑该书的每个属性。一种只接受一个属性(Book)并返回一个布尔值的方法,该方法应该编辑标题,作者,权限类型或其中的任何一个对我来说这没有意义,我一直坚持下去。
最初,我认为也许可以在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;
}
最佳答案
现在我的问题是editBook()方法应该能够编辑书的每个属性。一种只接受一个属性(Book)并返回一个布尔值的方法,该方法应该编辑标题,作者,权限类型或其中的任何一个对我来说这没有意义,我一直坚持下去。
public class Book {
int id;
String title;
String Author;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return Author;
}
public void setAuthor(String author) {
Author = author;
}
}
public class Library {
public boolean editBook(Book book) {
boolean isEdited = false;
//This is how you edit the attributes of the book
book.id=1;
book.title= "Java Programming";
book.Author= "John Smith";
isEdited = true;
return isEdited;
}
}