所以我是java新手(之前学过python、jss、html和css),最近开始学习类和对象。 我正在制作一个图书库作为练习,并希望用户使用扫描仪输入图书数据,我将显示到目前为止我所做的代码。我知道我没有 while 循环,但我想在执行此操作之前整理出添加一本书的代码。目前,我陷入了如何迭代和添加多本书的困境,例如,如果用户选择添加一本书,我假设它应该添加像 book1name= Booklist.name 这样的书籍,而当用户想要添加另一本书时,我假设它应该添加是 book2name= Booklist.name。然而,我正在努力解决如何迭代它(自动将其从 book1name 更改为 book2name)以及如何在代码运行时更改变量名称。我知道我可能搞砸了解释,但希望更有经验的程序员能够理解我的意思。
非常感谢任何帮助。 非常感谢。
import java.util.Scanner;
public class BookLibrary {
int counter=1;
public static void main (String[]args) {
Scanner choiceScan=new Scanner(System.in);
System.out.println("Do you want to 1:Add a book or 2:Remove a book");
int choice= choiceScan.nextInt();
if (choice==1) {
System.out.println("You want to add a book");
addBook();
}
}
public static void addBook() {
Scanner entryScan=new Scanner(System.in);
System.out.println("Enter the Name of the book");
String name=entryScan.nextLine();
System.out.println("Enter the Author of the book");
String author=entryScan.nextLine();
}
}
public class BookList {
String name;
String author;
int bookNum;
public BookList(){
}
public void printLibrary() {
System.out.println("Book name: "+name );
System.out.println("Author: " +author);
System.out.println("Book Number: "+bookNum);
}
}
我尝试在谷歌上寻找解决方案,但很难描述问题,并且不想求助于 Chatgpt,因为我通常很难理解它提供的解释。
您缺少的关键概念是集合,例如列表或数组。 (在 Java 中,前者使用起来要简单得多。)
您拥有一个
List<Book>
(发音为“书籍列表”),而不是 15 个变量(书籍 book0、书籍 book1、...、书籍 book14):
可以这样创建列表:
List<Book> books = new ArrayList<>();
然后您可以向其中添加书籍:
Book myBook = ...;
books.add(myBook);
...从中获取一本书:
Book theThirdBook = books.get(2); // Zero indexed: 0 is the first one
...并检查有多少个:
int bookCount = books.size();